Bash Batch Resize Изображения Размер файла Проблема - PullRequest
1 голос
/ 29 июля 2009

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

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

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

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

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

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

Ответы [ 2 ]

2 голосов
/ 29 июля 2009

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

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

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

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

0 голосов
/ 29 июля 2009

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...