Фотошоп долго сохраняет png

Обновлено: 02.07.2024

Как известно, при сохранении PNG изображений Photoshop может изменять RGB значения пикселей с нулевой альфой на произвольные значения. Например сохраняем черную полностью прозрачную текстуру и на выходе в RGB получаем не черный, а какой-нибудь другой цвет, возможно белый. Можно ли с этим что-то сделать и всегда сохранять RGB без изменений?

Или возможно это проблема не Photoshop, а самого формата PNG, кто знает?

А, вот, когда у меня библиотека загрузки png глючила и иногда "расставляла" альфу по своему усмотрению и стёртые участки изображения отображались на экране с альфой 1.0, это было весело.

cppboris
Попробуй сохранять для веб. Там есть цвет фона, вроде как.

eugeneloza
> GIMP делает подобным образом. Только значения не "произвольные", а те, которые
> были "до стирания" альфы в ноль. Т.е. при стирании пикселя (0.5, 1.0, 0.7, 1.0)
> он становится (0.5, 1.0, 0.7, 0.0), а не (0.0, 0.0, 0.0, 0.0),
вот именно что гимп делает то, что от него ожидается — просто зануляет альфу, оставляя цвет каким был. фотошоп же оставляет за собой право произвольным образом менять цвет прозрачных пикселей, так как их всё равно не видно и он обычно их заменяет на цвет ближайшего непрозрачного пикселя, чтобы при линейной фильтрации без premultiplied alpha не было артефактов на границе прозрачности.

KaZuaL
> Попробуй сохранять для веб. Там есть цвет фона, вроде как.
это не решает проблему хранения отдельной информации в альфаканале фотошопа. например, невозможно в одну текстуру в rgb запечь нормаль, а в альфу — roughness, потому что в участках с нулевой roughness фотошоп похерит rgb.

cppboris
> Или возможно это проблема не Photoshop, а самого формата PNG, кто знает?
это проблема именно фотошопа именно в отношении хранения альфаканала png. конкретно проблема в том, что при сохранении png у него вообще нет альфаканала в явном виде, а есть некий скрытый слой, который называется transparency и который нельзя вручную ни выдрать, ни модифицировать отдельно от rgb. у нас художники для этих целей используют плагин для фотошопа superpng, он позволяет именно это: модифицировать альфаканал отдельно от цвета при сохранении png, аналогично gimp, который умеет это из коробки.

Можно легко сохранять файлы изображений Photoshop в самых разных популярных графических форматах.

TIFF — гибкий растровый (битовый) формат изображения, поддерживаемый практически всеми приложениями рисования, редактирования изображений и верстки.

Вызовите команду «Файл» > «Сохранить как. » , в меню «Тип файлов» выберите «TIFF» и нажмите кнопку «Сохранить». В диалоговом окне «Параметры TIFF» выберите желаемые параметры и нажмите кнопку «ОК».

Битовая глубина (только в 32-битном режиме)

Задает битовую глубину (16-, 24- или 32-битовую) сохраняемого изображения.

Задает метод сжатия данных совмещенного изображения. При сохранении 32-битового файла tiff можно задать сжатие с прогнозированием, однако вариант использования сжатия jpeg не предлагается. Сжатие с прогнозированием обеспечивает более качественное сжатие данных путем упорядочения значений с плавающей точкой, оно совместимо со сжатием LZW и ZIP.

Сжатие JPEG доступно только для непрозрачных изображений RGB и полутоновых изображений с глубиной цвета 8 бит на канал, размер которых не превышает 30 000 пикселей в ширину или высоту.

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

Определяет платформу, на которой файл может быть прочитан. Этот параметр полезен в случаях, когда неизвестно, какой программой можно открыть выбранный файл. Photoshop и приложения последнего поколения могут считывать файлы с использованием как формата IBM PC, так и формата Macintosh.

Сохранить пирамиду изображений

Позволяет сохранять данные с различным разрешением. Photoshop не предлагает возможностей открытия файлов с различным разрешением, изображение открывается в файле с самым высоким разрешением. Однако Adobe InDesign и некоторые серверы изображений поддерживают открытие файлов в форматах с различным разрешением.

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

Определяет метод сжатия данных для пикселов в слоях (вместо комбинирования данных). Многие приложения не могут считывать данные слоев и пропускают их при открытии файла TIFF. Photoshop, однако, может считывать данные слоев в файлах TIFF. Хотя размер файлов, содержащих данные слоев, больше размера файлов без них, сохранение данных слоев избавляет от необходимости сохранять и работать с отдельным файлом PSD для хранения данных слоев. Выберите параметр «Удалить слои и сохранить копию», чтобы выполнить сведение изображения.

Чтобы получать от Photoshop запрос подтверждения перед сохранением изображения с несколькими слоями, выберите параметр «Выводить предупреждение перед сохранением многослойных файлов в формате TIFF» в области «Обработка файлов» диалогового окна «Установки».

Настройте свою операционную систему, оборудование и параметры приложения, чтобы обеспечить стабильную работу и оптимальную производительность Photoshop на компьютере. Если Photoshop на компьютере работает медленнее, чем ожидается, или если при использовании Photoshop возникают зависания и задержки, воспользуйтесь советами и методами, описанными в этом документе.

3D-функции Photoshop будут удалены в будущих обновлениях. Пользователям, работающим с 3D-функциями, рекомендуется ознакомиться с новой коллекцией Adobe Substance 3D, которая представляет собой новое поколение 3D-инструментов от Adobe.

Дополнительную информацию о прекращении поддержки 3D-функций Photoshop можно найти здесь: Photoshop 3D | Распространенные вопросы об упраздненных 3D-функциях.

Для оптимальной работы Photoshop компьютер должен соответствовать минимальным системным требованиям. Запуск Photoshop на маломощном или неподдерживаемом оборудовании, например на компьютере с несовместимым графическим процессором (GPU), может привести к проблемам с производительностью.

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

Существуют 4 основных способа настройки производительности приложения Photoshop:

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

Самый эффективный способ оптимизации производительности — инвестиции в более быстрое и мощное оборудование.

В Photoshop имеется набор установок ( «Установки» > «Производительность» ), который поможет оптимально использовать такие ресурсы компьютера, как память, кэш, графический процессор, мониторы и т. д. В зависимости от основного использования Photoshop и типов документов, с которыми вы в основном работаете, вам могут подойти различные комбинации этих параметров.

Такие дополнительные параметры, как Рабочие диски , доступные на других вкладках диалогового окна «Установки», также могут непосредственно влиять на скорость и стабильность работы компьютера.


Установки производительности в Photoshop

Настройка выделенной памяти для Photoshop

Производительность можно повысить путем увеличения количества памяти/оперативной памяти, выделяемой на Photoshop. В разделе Использование памяти в диалоговом окне установок производительности ( Установки > Производительность ) указывается, какой объем ОЗУ доступен для приложения Photoshop. Там же указывается оптимальный диапазон выделения памяти на Photoshop для вашей системы.

По умолчанию приложение Photoshop использует 70% доступного объема ОЗУ.

  1. Увеличьте количество оперативной памяти, выделяемой на Photoshop, изменив значение в поле Занято под Photoshop. В качестве альтернативы можно изменить положение ползунка «Использование памяти».
  2. Перезапустите приложение Photoshop, чтобы изменения вступили в силу.

Чтобы определить оптимальный объем выделенного ОЗУ для вашей системы, изменяйте соответствующее значение с шагом 5 % и следите за изменением производительности с помощью индикатора эффективности.

Мы не рекомендуем выделять на Photoshop более 85 % памяти компьютера. Это может повлиять на производительность, поскольку другим важным системным приложениям может не хватить памяти.

Если приложение Photoshop выдает ошибки «Недостаточный объем ОЗУ», попробуйте увеличить объем ОЗУ, выделенный на Photoshop. Однако, если задать слишком высокое значение для выделенной памяти на Photoshop (>85 %), это может сказаться на производительности других запущенных приложений и сделать работу системы нестабильной.

В данном случае лучшее решение — увеличить объем ОЗУ в компьютере. Узнайте у производителя вашего компьютера о характеристиках ОЗУ и его совместимости.

Настройка уровней кэширования

Основы работы с кэшем

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

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

Наборы параметров кэширования

На панели «Параметры производительности» доступны три набора параметров кэширования. Выберите тот из них, который соответствует основному использованию (назначению) Photoshop:

  • «Веб-дизайн / дизайн пользовательских интерфейсов»: выберите этот вариант, если Photoshop в основном используется для дизайна веб-сайтов, приложений или графического интерфейса. Этот вариант подходит для документов с большим количеством слоев с ресурсами, состоящими из малого или среднего количества пикселей.
  • «По умолчанию / Фотографии»: выберите этот вариант, если Photoshop в основном используется для ретуши и редактирования изображений умеренного размера. Например, это вариант подходит, если вы обычно редактируете в Photoshop фотографии с мобильного телефона или цифровой камеры.
  • «Очень большой размер в пикселях»: выберите этот вариант, если вы много работаете в Photoshop с большими документами — например, с панорамами, мэт-пэйнтингом и т. д.

Уровни кэша

Для более точного контроля укажите уровни кэша вручную. Значение по умолчанию составляет 4.

  • При обработке относительно небольших файлов – примерно 1 мегапиксель или 1 280 до 1 024 пикселей и много слоев (50 и больше) – задайте значение уровней кэширования 1 или 2. Настройка значения уровней кэширования 1 отключает кэширование изображений; кэшируется только изображение, которое отображается на экране.
  • При обработке файлов с пикселями большего размера – например, 50 мегапикселей и более – задайте значение уровней кэширования больше 4. Более высокий уровень кэширования обеспечивает более высокую скорость перерисовки изображений.

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

Ограничение количества состояний в истории

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

Photoshop может сохранять до 1 000 шагов истории состояний; значение по умолчанию – 50.

Чтобы уменьшить это значение, перейдите к диалоговому окну «Параметры производительности». В разделе История и кэш
установите меньшее значение для параметра Состояния истории.

Настройка параметров графического процессора (GPU)

Лучшим способом оптимизации ускорения с помощью GPU, который ускоряет перерисовку изображений, является использование самой новой версии драйвера видеоадаптера. Инструкции по обновлению драйверов видеоадаптера

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

Установки ГП

В Photoshop предусмотрены специальные настройки ГП в разделах «Производительность» и «3D» диалогового окна «Установки».

Настройки в разделе «Установки» > «Производительность»

Если на вашем компьютере обнаружена видеокарта, ее название и модель появятся в разделе «Обнаружение графического процессора» в области «Настройки графического процессора» в разделе «Производительность».

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

Дополнительные настройки графического процессора

Для тонкой настройки производительности карты нажмите кнопку «Расширенные настройки».

Настройка режима рисования:

  • Базовый: в этом режиме используется наименьший объем памяти графического процессора для запуска основных функций OpenGL. Используйте этот режим, если «Нормальный» и «Расширенный» режимы демонстрируют менее стабильную производительность. Это может произойти, когда вы регулярно запускаете другие программы, которые используют память графического процессора. Выберите этот вариант, если вы заметили плохую прорисовку или медленную работу при использовании ГП-ускорения.
  • Нормальный: в этом режиме используется больше памяти ГП для поддержки расширенных функций OpenGL с целью выполнения настройки цветов, сопоставления тонов и эффекта «шахматной доски». Это не позволяет ЦП выполнять другие задачи.
  • Расширенный: в этом режиме ГП используется наиболее интенсивно. В нем используется то же количество памяти, что и в режиме «Нормальный», но также задействуются расширенные функции для улучшения производительности рисования. Этот параметр лучше всего работает в 3D или при интенсивной работе с функциями ГП-ускорения. Если этот режим кажется менее стабильным, попробуйте переключиться на «Нормальный» или «Базовый» режим.

Изменения режима рисования вступают в силу только после перезапуска Photoshop.

Дополнительные расширенные настройки

  • Использовать графический процессор для ускорения расчета: позволяет ускорить интерактивность просмотра с деформацией и с кукольной деформацией.
  • Использовать OpenCL : выключите, если функции «Галерея размытия», «Умная резкость», «Выбор области фокусировки» или «Размер изображения с сохранением деталей» работают неправильно.
  • Сглаживание направляющих и контуров: отключите, если направляющие и контуры кажутся слишком тяжелыми или слишком широкими
  • 30-битный дисплей: позволяет увеличить точность цветопередачи на мониторе, поддерживающем 30-битный режим.
  • Использовать GPU-ускорение в собственной операционной системе: позволяет использовать macOS Metal и Windows DirectX 12 по мере необходимости.

Включение OpenCL вероятнее всего позволит улучшить производительность при использовании следующих функций приложения Photoshop:

  • Галерея размытия - Размытие по полю, Размытие по диафрагме, наклон-смещение, Размытие контура, вращение запачкает (с ускорением OpenCL)
  • Умная резкость (уменьшение шума – с ускорением OpenCL)
  • Уточнить края (с ускорением OpenCL)

Настройки в разделе «Установки» > 3D

Раздел «3D» диалогового окна «Производительность» содержит ползунок видеопамяти, который работает аналогично ползунку управления памятью в разделе «Производительность». Этот ползунок используется для определения верхнего предела видеопамяти, доступной для средства 3D-моделирования в Photoshop. Итоговое значение равно процентному значению всей доступной видеопамяти. При выборе значения 100 % все равно остается резервная видеопамять для операционной системы. При выборе высоких значений повышается 3D-производительность в целом, однако это может препятствовать нормальной работе других приложений, для которых используется ГП.


3D: использование памяти

Управление рабочими дисками

Если Photoshop не запускается из-за переполнения рабочего диска, удерживайте при запуске клавиши Cmd + Option (macOS) или Ctrl + Alt (Windows), чтобы задать новый рабочий диск.

Рабочий диск — это жесткий диск или твердотельный накопитель (SSD-диск), используемый для временного хранения данных при работе в Photoshop. Photoshop использует это пространство для хранения фрагментов документов и их состояний панели «История», для которых не хватает объема оперативной памяти компьютера.

Дополнительные сведения об установках и рекомендуемых настройках рабочих дисков см в разделе Настройка рабочих дисков.

Также см. дополнительные сведения об устранении ошибок рабочего диска в Photoshop.

Индикатор «Эффективность»

Следите за индикатором эффективности для контроля производительности во время работы в приложении Photoshop.Нажмите на всплывающее меню в нижней части окна, в котором отображается изображение, и выберите «Эффективность» во всплывающем меню.

Если значение индикатора ниже 100%, это означает, что приложение Photoshop использует весь доступный объем оперативной памяти и дополнительно использует пространство на рабочем диске, за счет чего снижается производительность. Если эффективность ниже 90%, необходимо выделить больше ОЗУ для приложения Photoshop в «Параметрах производительности». Вы также можете добавить дополнительный объем ОЗУ в вашей системе.


Индикатор «Эффективность»

Отключение линеек и наложения

Отображение линеек и наложений (таких как «Сетки», «Фрагменты» и «Быстрые направляющие») может замедлять выполнение некоторых операций, таких как рисование, преобразование и перетаскивание слоев на холсте.

  • Чтобы отключить линейки, снимите флажок Линейки в меню Вид.
  • Чтобы отключить наложения, перейдите в меню Вид > Показать, выберите Нет или отключите отдельные элементы.

Обрабатывайте файлы с ограниченным размером

Очень большой размер файлов зачастую может стать причиной снижения производительности приложения.

Photoshop поддерживает файлы максимальным размером 300 000 x 300 000 пикселей, за исключением файлов PDF, которые ограничены размером 30 000 x 30 000 пикселей и 200 x 200 дюймов, и Camera Raw, где поддерживаются изображения высотой или шириной до 65 000 пикселей и общим размером до 512 мегапикселей.

Ограничение размера файлов в приложении Photoshop:

  • Файлы PSD: 2 Гб
  • Файлы TIFF: 4 Гб
  • Файлы PSB: 4 экзабайта (4 096 петабайт или 4 миллиона терабайт)
  • Файлы PDF: 10 Гб (максимальный размер страниц – 200 х 200 дюймов)

Закройте ненужные окна с открытыми изображениями

Если приложение Photoshop выдает ошибку «Недостаточный объем ОЗУ» или работает медленно, это может быть вызвано тем, что вы открыли слишком много изображений. Если вы открыли несколько окон с изображениями, попробуйте закрыть некоторые из них.

Сокращение количества стилей

Чтобы уменьшить объем пространства, используемого приложением Photoshop на рабочем диске, необходимо уменьшить количество загруженных стилей. Узоры и кисти — одни из самых объемных составляющих стилей. Сохраните в соответствующий файл стили, которые не требуются прямо сейчас, затем удалите их и загружайте только тогда, когда они вам понадобятся.

См. дополнительные сведения об управлении наборами.

Уменьшите или отключите панель предварительного просмотра миниатюр

Каждый раз при изменении документа приложение Photoshop обновляет все миниатюры, отображаемые на панелях «Слои» и «Каналы». Этот процесс обновления может повлиять на скорость отклика при быстром рисовании, перемещении или искажении слоев. Чем большее количество миниатюр отображается, тем значительнее проявляется данный эффект.

Для того чтобы уменьшить или отключить предварительный просмотр миниатюр, нажмите на меню соответствующей панели и выберите «Параметры панели». Выберите меньший размер миниатюр или опцию «Нет», а затем нажмите кнопку «ОК».

И так, как же происходит оптимизация? Давайте разберемся по порядку, в основном это происходит из-за нескольких причин, и сейчас мы их рассмотрим.

Non-interlaced или Interlaced
  • Non-interlaced — браузеры загружают их последовательно, сверху вниз, по мере поступления информации из сети.
  • Interlaced — до полной загрузки файла изображение в браузере отображается в низком разрешении. т.е. сначала Вы увидите изображение низкого качества, затем, по мере поступления графической информации, качество изображения будет постепенно улучшаться. Чересстрочное отображение позволяет уменьшить субъективное время загрузки и показать пользователям, что изображение загружается, однако чересстрочное отображение также увеличивает размер файла.
ColorType и BitDepth
  1. Grayscale;
  2. Grayscale + alpha;
  3. Palette (256 цветов);
  4. RGB;
  5. RGB + alpha.

PNG RGB + alpha — 17 853 байт

image

PNG Palette — 13 446 байт

image

Разница в размере — 4407 байт (24%), при этом визуально картинки не изменились. Если Вы видите разные изображение, то это оптический обман.

PNG 4-bit — 6 253 байт

image

image

Разница в размере — 332 байт (5,3%), при этом визуально картинки не изменились. Если Вы видите разные изображение, то это оптический обман.

Обе технологии поддерживают почти все редакторы изображений, которые умеют сохранять в PNG, но об этом знают мало людей, и по этому разработчикам программ-оптимизаторов PNG приходится об этом заботиться.

Chunks

Если кто в танке не в курсе, PNG состоит из Chunks. Писать, что это такое Chunks не буду, можете сами прочитать. Лучше я покажу, для этого есть программа — TweakPNG, возьмите любое изображение формата PNG и откройте через данную программу и увидите всю структуру PNG.

image

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

  • Critical chunks присутствуют в любом PNG-изображении (IHDR, PLTE для PNG Palette, один и более IDAT и IEND).
  • Ancillary chunks являются дополнительными chunks, удаление тех или иных chunks позволяет уменьшить размер изображения, но не намного.
Оптимизация палитры

Может быть реализована только в PNG Palette, технология основана на оптимизации chunks PLTE, может уменьшить размер изображения, хотя и не намного. На мой взгляд лучше все это технология реализована в Color Quantizer, один из его алгоритмов был реализован и в TruePNG.

Оптимизация альфа-канала
    от автора Color Quantizer; — более продвинутая технология оптимизации и требует большего времени, может увеличить степень сжатия.

Оригинальное изображение. Размер — 214 903 байт.

image

image

CryoPNG (параметр -f0). Размер — 107 806 байт.

image

image

CryoPNG (параметр -f1). Размер — 105 625 байт.

image

image

CryoPNG (параметр -f2). Размер — 107 743 байт.

image

image

CryoPNG (параметр -f3). Размер — 114 604 байт.

image

image

CryoPNG (параметр -f4). Размер — 109 053 байт.

image

image

Недостаток CryoPNG — требуется оптимизация всех пяти изображений для выявления наилучшего результата, а это в свою очередь требует большого количества времени.
TruePNG работает в этом плане аналогично CryoPNG -f0, в свою очередь CryoPNG -f0 является оптимальным с точки зрения оптимизации PNG (как говорится это просто опыт). По моим наблюдениям, CryoPNG -f1 и CryoPNG -f4 намного чаще оптимизируют PNG лучше CryoPNG -f0, по сравению с CryoPNG -f2 и CryoPNG -f3.

Алгоритм сжатия Deflate + Фильтрация строк

Как мы же говорили, PNG состоит из Chunks, в данном случае, нас интересует Chunks — IDAT. Для его сжатия в основном играют два фактора, фильтрация строк и алгоритм сжатия Deflate. Давайте об этом поговорим поподробнее.

Фильтрация строк
  1. None — фильтр отсутствует;
  2. Sub смотрит байт в той же строке;
  3. Up — с тем же номером, что и текущий в предыдущей;
  4. Average берет оба и считает от них среднее арифметическое;
  5. Paeth смотрит байт перед байтом в предыдущей строке, сравнивает разницу и кодирует наименьшую.
    ; .
Алгоритм сжатия Deflate

На сегодняшний день есть несколько библиотек, основанных на алгоритме сжатия Deflate:

Библиотека
Deflate
Скорость
работы
Степень
сжатия
Программы Примечание
Zlib Высокая Низкая TruePNG
OptiPNG
PNGWolf
Благодаря высокой скорости работы может быстро перебрать большое количество значение параметров и выбрать оптимальные.
7-zip Средняя Средняя AdfDef
PNGWolf
Не всегда выбранные значения параметров в Zlib являются для них оптимальными (близки к оптимальным). Перебор значений параметров будет занимать большое количество времени и почти всегда затраченное время не оправдывает полученный результат.
Kzip Низкая Высокая PNGOut
PNGWolf использет одновременно и Zlib, и 7-zip.

Важно: все эти программы дополняют друг друга, и они сильны, когда едины. Это самое большая проблема, когда их используют отдельно, а потом сравнивают полученные результаты. В первую очередь надо использовать Zlib, а потом уже 7-zip и/или Kzip.

В следующей части мы поговорим об этих программах поподробнее, а также построим три алгоритма оптимизации PNG (с учетом оптимизации альфа-канала) по степени сжатия и затраченного времени. Ниже приведен условный график зависимости степени сжатия от затраченного времени на оптимизацию Chunks IDAT.

image

Как видно из графика, чем больше степень сжатия, тем больше времени требуется.

И еще немного.

Итак мы переходим к JPEG, здесь все гораздо проще, и так продолжим. Но перед этим скажу, что JPEG нельзя пересохранить не потеряв качество, даже со степенью качеством 100 (это не максимальное качество, а математический предел оптимизации). Рассмотрим следующий пример (чтобы было честно, изображения были оптимизированы по одному и тому же алгоритму).

Оригинальное изображение — 52 917 байт.

image

Новое изображение (сохранен через Adobe Photoshop CS5, Save for Web 100) — 53 767 байт

image

Строим diff-разницу изображений.

image

Вот так вот сильно изменилась картинки, да, визуально ничего не заметно. Как видно размер картинки увеличился. Это из-за специфики библиотеки, которая создает JPEG, о библиотеках поговорим чуть позже.

Есть только одна программа, которая позволяет пересохранить изображения в JPEG не потеряв качество — BetterJPEG (есть плагин к Adobe Photoshop). Если не ошибаюсь, для жителей стран СНГ для некоммерческого использования программа бесплатная. Лично я использую BetterJPEG, когда нет исходника и требуется незначительное редактирование изображения. Рассмотрим пример работы BetterJPEG.

Оригинальное изображение.

Новое изображение (усложняем ситуацию, добавляем надпись «HTML»).

Строим diff-разницу изображений.

image

Markers

JPEG в отличие от PNG состоит из маркеров. Рекомендую прочитать статью «Структура файла, маркеры», также рекомендую вообще посмотреть сам сайт. Самая мощная программа по изучению структуры JPEG — JPEGsnoop. Есть еще программы, но о них расскажу в заключении. Для изучения структуры JPEG рекомендую следующее изображение — PhotoME.
Удаления некоторых маркеров (APP0-APP15, COM), может существенно уменьшить размер изображения. Мне больше всего для этого нравится программа — Jhead, наиболее простая и удобная.

Progressive и Optimized
  • Стандартный. Сейчас почти не используется, аналогичен оптимизированному методу (степень сжатия хуже).
  • Оптимизированный (Optimized) — создается улучшенный файл JPEG с меньшим размером файла. Браузеры загружают их последовательно, сверху вниз, по мере поступления информации из сети.
  • Прогрессивный (Progressive) — изображение выводится как последовательность наложений, что позволяет отобразить изображение с низким разрешением до полной его загрузки, т.е. сначала Вы увидите изображение низкого качества, затем, по мере поступления графической информации, качество изображения будет постепенно улучшаться. Internet Explorer, включая восьмую версию, не поддерживает прогрессивную загрузку JPEG, он его показывает только после полной загрузки файла, что сильно отличается от поведения «традиционного» JPEG, когда изображение отображается сверху вниз, по мере загрузки.
Библиотека создания JPEG
    использует свои собственные библиотеки, их вообще несколько, например, Adobe Photoshop, Save for web — используется для сохранения в WEB. . Использую почти все программы, которые умеют сохранять в JPEG, включая Adobe Fireworks. В библиотеке LibJPEG есть очень интересная программа — JPEGTran (оптимизирует изображение, без потери качества). Имеет смысл применять, если Вы создаете изображения JPEG через Photoshop или Illustrator и оптимизируете через JPEGTran, то получаете максимальный эффект оптимизации, т.к. выходит, что используются две библиотеки. К сожалению, у меня так и не получилось заставить Photoshop сохранять в JPEG, без потери качества.

Сказать какая из двух библиотек оптимизирует лучше, вопрос очень сложный и не однозначный, но из-за очень высокой скорости работы JPEGTran, Вы просто не замечаете его работу, только не забывайте проверять размер изображения, увеличился или нет, Все это можно сделать и через bat. Помните, JPEGTran может переводить JPEG из Progressive в Optimized и наоборот, не изменяя саму картинку.

Заключение

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

Читайте также: