Как преобразовать папку .pngs в .jpg при установке цвета фона?

У меня есть папка png-файлов с прозрачным фоном. Я хотел бы преобразовать их из командной строки и сохранить прозрачные фоны изображений.

Буду признателен за любую помощь.

Поскольку jpgs не поддерживают прозрачность, так как я могу указать шестнадцатеричное значение фона фона на выходе jpg? Сейчас он по умолчанию #ffffff? Я пробовал этот скрипт, но он дает выходные jpgs white backgrounds:

mogrify -quality 100 -format jpg *.png

Update

Я создал эти png-файлы в inkscape. Я должен упомянуть, что моя цель в преобразовании этих png в jpgs - избавиться от зубчатых краев на круговых или угловых объектах. В настоящее время png имеют зубчатые края, и я читаю, что преобразование их в jpgs может решить эту проблему. Однако преобразование методом, описанным в ответе Кристиана Скьёдта, дает изображениям еще хуже зубчатые края. Есть ли способ, которым я могу преобразовать pngs в jpg, а также использовать сглаживание или, возможно, другую технику, чтобы избавиться от зубчатых краев? Спасибо за помощь.

1
задан 22 October 2012 в 16:17

4 ответа

Формат JPEG не поддерживает прозрачность - поэтому сохранение прозрачных фонов невозможно, если вы хотите (или должны) использовать формат JPEG.

Обратите внимание, что Wikipedia действительно поддерживает прозрачность, но гораздо менее распространена, чем формат JPEG. Это зависит от вашего варианта использования, является ли это жизнеспособной альтернативой.

28
ответ дан 25 May 2018 в 19:09
  • 1
    Возможно, я ошибаюсь, но ОП задает вопрос о том, какой цвет будут сделаны в любых прозрачных областях. Они делаются белыми, но OP может использовать синий цвет, например. – hexafraction 22 October 2012 в 16:23

К вашему второму вопросу:

Чтобы указать цвет фона при преобразовании изображений, вы можете использовать опцию -fill:

mogrify -quality 100 -format jpg -fill "#FF0000" -opaque none *.png

Использование -background обеспечивает аналогичные результаты , Не забывайте -opaque none.

15
ответ дан 25 May 2018 в 19:09
  • 1
    Привет, спасибо за помощь. Есть ли способ, которым я могу сгладить выходной jpeg с помощью этой команды? См. Обновление 2 выше для дополнительного контекста. Благодарю. – James 27 August 2011 в 02:39

Извините, что нет способа, формат jpeg не поддерживает alpha channel, поэтому вы не можете иметь прозрачность.

4
ответ дан 25 May 2018 в 19:09

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

0
ответ дан 25 May 2018 в 19:09

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

Похожие вопросы: