Пакетное изображение заменяет 2 цвета

Я знаю, что такой вопрос уже есть, но он мне не помог. У меня много файлов изображений, где я хочу изменить фиолетовый RGB(255, 0, 255) на прозрачный (это png). Есть ли приложение, которое может сделать это быстро? Я использую Linux, но я могу использовать инструмент Windows.

1 ответ

Решение

Как и большинство вопросов, связанных с пакетным преобразованием файлов растровых изображений, ответ можно найти в наборе инструментов netpbm. В этом случае, если ваши png-изображения еще не имеют альфа-канала, простейшим решением будет преобразование из png в pnm и обратно; на обратном пути вы можете указать прозрачный цвет:

pngtopnm $file | pnmtopng -transparent==rgb:ff/00/ff > new.$file

Если ваши png-изображения уже имеют альфа-канал (или другой цвет прозрачного фона), вам нужно извлечь существующий альфа-канал, а затем объединить его с новым альфа-каналом, состоящим из "фиолетовых" пикселей. Увидеть -alpha опция командной строки для pngtopnm а также pnmtopng, Ты можешь использовать ppmchange создавать растровые изображения, соответствующие определенному цвету в изображении. Ты можешь использовать ppmcomp или же pnmarith составить два изображения. (Если изображения растровые, pnmarith -max а также pnmarith -min побитовые or а также andсоответственно.)

Если преобразование недоступно в наборе инструментов netpbm, это обычно довольно легко сделать с помощью сценария оболочки или программы на python; просто конвертируйте изображения в простой формат, с которым довольно легко работать.

Другие вопросы по тегам