Bash Batch Resize Изображения Размер файла Проблема

StackOverflow https://stackoverflow.com/questions/1200134

  •  05-07-2019
  •  | 
  •  

Вопрос

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

Обычно я использую этот сценарий для изменения размера изображений, выгруженных из презентации Powerpoint, для использования в небольшом приложении для веб-презентации, которое я написал. Когда я выкидываю gif-файлы и запускаю скрипт, размер файлов увеличивается более чем в два раза (например, от 8 до 18 КБ; от 14 до 50 КБ)

Соответствующие строки сценария следующие:

/usr/bin/convert $holdfile -thumbnail x480 temp.GIF
mv temp.GIF $i

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

Редактировать. Я должен был указать, что файлы начинаются с разрешения 960px x 720px и меняются до 640px x 480px.

Это было полезно?

Решение

Ну, это может произойти, если преобразование сжимает хуже, чем входные файлы. Поскольку одна и та же схема сжатия может давать разные результаты в зависимости от того, насколько хорош код сжатия, это может произойти.

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

Также вероятно, что ваши исходные изображения используют оптимизированную цветовую палитру, возможно, только с несколькими цветами, и после изменения размера им нужны полные 256 цветов, которые поддерживаются одним GIF-кадром, из-за сглаживания, выполняемого изменением размера.

В любом случае, вы, вероятно, должны увидеть лучшую производительность, используя PNG вместо GIF. PNG был разработан как современная замена GIF, и ни один (графический) браузер, используемый сегодня, не имеет проблем с отображением PNG (без альфа-канала). PNG сжимает намного лучше, чем GIF, и допускает больше цветов одновременно. Также есть такие инструменты, как optipng, которые еще больше сжимают изображения в формате PNG.

Другие советы

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

GIF поддерживает только сжатие LZW, но из-за ограничений по патенту, срок действия которых истек (последний был 2004 г.), когда-то было необходимо вручную включить сжатие LZW. Я не уверен, что это все еще так, но стоит посмотреть.

  

Если сжатие LZW указано, но   Сжатие LZW не было включено,   данные изображения записываются в   несжатый формат LZW, который может быть   читать LZW декодеры. Это может привести   в файлах GIF больше, чем ожидалось.   - imagemagick.org

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top