Bash Batch Resize Изображения Размер файла Проблема
-
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