Как сделать иконку с розовым фоном прозрачной?

Я использую библиотеку иконок Visual Studio (VS2008ImageLibrary), есть несколько файлов BMP с розовым фоном. Как сделать розовый фон прозрачным? Какое программное обеспечение я могу использовать для этого? Любой бесплатный?

Спасибо


person Community    schedule 25.10.2008    source источник


Ответы (5)


Вы можете попробовать онлайн, если сможете преобразовать свой bmp в сначала гифка.

Или вы можете загрузить PAINT.Net (бесплатное ПО) и применить прозрачный фон, следуя этому < href="http://revver.com/video/1057314/create-transparent-background-using-paintnet/" rel="nofollow noreferrer">видеоинструкции.

person VonC    schedule 25.10.2008
comment
Вы действительно не хотите делать это с несколькими сотнями значков вручную. - person OregonGhost; 25.10.2008
comment
Нет, я не хочу этого делать. Но опять же, это был не совсем вопрос. Тем не менее, +1 за ваше пакетное предложение. - person VonC; 25.10.2008

Я использовал инструмент пакетного преобразования IrfanView. Это все еще некоторая работа, потому что вам нужно щелкнуть розовую область на каждом отдельном значке, а не просто указать розовый как прозрачный цвет, но это сработало. Однако было бы легко написать простой инструмент преобразования с использованием GDI+, что я тоже рассматривал.

Обратите внимание, что даже если вы можете использовать их как прозрачные изображения, многие из них, к сожалению, по-прежнему имеют некрасивые края, когда вы визуализируете их на темном фоне или используете их в качестве наложения. Если вам просто нужно очень мало из них, рассмотрите возможность настройки их по отдельности, если вы думаете, что у вас не всегда будет яркий фон.

person OregonGhost    schedule 25.10.2008
comment
Как сказано в комментарии к моему вопросу, +1 за ваше пакетное предложение. - person VonC; 25.10.2008
comment
Спасибо. С этим подходом все еще не очень хорошо, но преобразование значков VSObject_* с его помощью заняло всего две минуты, так что не нужно слишком много работать в этой разовой работе :) В качестве примечания, подобные вещи также довольно легко с IrfanView для отдельных изображений, а не только для пакетного преобразования. - person OregonGhost; 25.10.2008

Вы можете сделать это с помощью ImageMagick convert:

convert input.png -transparent magenta  output.png

Кстати, он не розовый, а пурпурный.

person Mamad Asgari    schedule 23.02.2014

Хотя я не знаю современного ответа .NET на ваш вопрос, стоит отметить историческую причину этих растровых изображений с пурпурным фоном:

Еще во времена, когда существовала только Win32, существовали некоторые общие элементы управления (например, панель инструментов и ListView), которые принимали эти растровые изображения и цвет для обработки как прозрачные, а затем отображали этот цвет как прозрачный. Я предполагаю, что за кулисами они использовали такие функции, как TransparentBtl .

person Martin Kenny    schedule 25.10.2008
comment
На самом деле, я вижу поддержку этой концепции даже сегодня во многих библиотеках, хотя она должна исчезать из-за повсеместной поддержки альфа-прозрачности. - person OregonGhost; 25.10.2008

Я знаю, что это что-то связанное с Form.TransparencyKey, но я не знаю, что именно такое розовое, вы должны знать точный цвет RGB/системы или Интернета.

если вы знаете, пожалуйста, поделитесь с нами

person Community    schedule 28.01.2009
comment
Color.Magenta, однако прозрачность выглядит плохо, когда вы делаете это, так как вы все еще можете видеть контур того места, где был розовый бит. - person Trotts; 26.05.2009