Пакетная замена цвета прозрачностью


17

У меня очень много PNG-изображений (слишком много, чтобы их можно было сделать по одному) с ярко-розовым фоном, и я хотел бы заменить цвет фона на прозрачный. Если это невозможно или особенно сложно, было бы полезно заменить указанный цвет на белый.

У меня есть GIMP, но нет фотошопа, и я не очень хорошо разбираюсь в командной строке, поэтому, если решение требует этого, показывайте каждый шаг. Было бы здорово сделать это, любая помощь будет оценена.

Ответы:


21

Я знаю, вы сказали, что вам не удобны инструменты командной строки, но ImageMagick может сделать это:

Заменить определенный цвет

convert balloon.gif -transparent blue balloon_trans.gif

введите описание изображения здесь введите описание изображения здесь введите описание изображения здесь

Где balloon.gifнаходится исходное изображение, -transparentуказывает, что вы хотите прозрачный bg, blueэто цвет, который вы хотите заменить, и balloon_trans.gifэто законченное изображение.

Это при условии, что ваш «ярко-розовый» не является частью какого-либо изображения. Для более интеллектуального удаления фона (заливка) ознакомьтесь с этим руководством: Маскировка простых фонов (заливка)

Это может стать немного странным, и некоторые из указанных здесь опций, вероятно, не требуются для того, что вы пытаетесь сделать, так как @graphics man предлагает вам добавить backgroundв команду


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


Специфично для вашей ситуации:

Сначала установите ImageMagick . Вам может потребоваться перезапустить после установки, чтобы обновить переменную PATH (я так и сделал)

После установки запустите командную строку (меню Пуск, введите cmd, нажмите Enter)

Вам нужно изменить каталоги, где хранятся изображения. Для вашей ситуации введите следующую команду:

cd C:\Users\Eric\Pictures\pngs\logos

Теперь нам нужно создать папку для сохранения всех изображений в:

mkdir batch

А теперь команда для преобразования всех изображений:

FOR %G IN (*.png) DO convert "%G" -transparent #FF00FF "batch\%G"

Примечание: С помощью ImageMagick v7, использовать magickвместо convert, как это

FOR %G IN (*.png) DO magick "%G" -transparent #FF00FF "batch\%G"

Если все прошло гладко, вновь сохраненные изображения должны быть в папке пакета, которую вы создали.

введите описание изображения здесь введите описание изображения здесь введите описание изображения здесь


1
Хорошее решение, если кому-то интересно, как работает Linux linux: для файла в * .png; конвертировать "$ {file}" -transparent '# ffcc66' "batch / $ {file}"; сделано
Самер Шемна

Для Mac это, кажется, связано: superuser.com/questions/773590/… Спасибо!
Дэн Розенстарк

Это не работает как Gimp. Если у вас есть белый пиксель с альфа-0.5 поверх черного пикселя, и вы хотите удалить черный цвет, серый пиксель останется.
Юлиан

3

Если вы используете gimp и не хотите использовать Imagemagick, вы можете взглянуть на пакетный процессор Дэвида (DBP) . Это плагин для GIMP для пакетной обработки. Обратите внимание, я никогда не использовал и не проверял, но это было то, что я видел раньше. Если бы у вас был Photoshop, я мог бы показать вам, как использовать пакет или действие.


У меня есть это, и я использовал его для массового обрезания этих изображений, но, похоже, нет никакой возможности заменить цвета. Может быть, я скучаю по нему, или у меня старая версия?
ет

Не знаю. Я просто знаком с плагином, потому что клиент использовал его для массового редактирования изображений и получал ошибку. Как написал Джон, Imagemagick является мощным вариантом и может решить все ваши проблемы. Там сайт очень подробный. Взгляните imagemagick.org/script/index.php
DᴀʀᴛʜVᴀᴅᴇʀ

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.