Я знаю, что такой вопрос уже есть, но он мне не помог. У меня много файлов изображений, где я хочу изменить фиолетовый RGB(255, 0, 255) на прозрачный (это png). Есть ли приложение, которое может сделать это быстро? Я использую Linux, но я могу использовать инструмент Windows.
1 ответ
Как и большинство вопросов, связанных с пакетным преобразованием файлов растровых изображений, ответ можно найти в наборе инструментов netpbm. В этом случае, если ваши png-изображения еще не имеют альфа-канала, простейшим решением будет преобразование из png в pnm и обратно; На обратном пути вы можете указать прозрачный цвет:
pngtopnm $file | pnmtopng -transparent==rgb:ff/00/ff > new.$file
Если ваши png-изображения уже имеют альфа-канал (или другой прозрачный фоновый цвет), вам необходимо извлечь существующий альфа-канал, а затем объединить его с новым альфа-каналом, состоящим из "фиолетовых" пикселей. Смотрите -alpha
командной строки -alpha для pngtopnm
и pnmtopng
. Вы можете использовать ppmchange
для создания растровых изображений, соответствующих определенному цвету изображения. Вы можете использовать ppmcomp
или pnmarith
для создания двух изображений. (Если изображения являются растровыми изображениями, pnmarith -max
и pnmarith -min
являются побитовыми or
и and
, соответственно.)
Если преобразование недоступно в наборе инструментов netpbm, это обычно довольно легко сделать с помощью сценария оболочки или программы на python; просто конвертируйте изображения в простой формат, с которым довольно легко работать.