WikiSort.ru - Компьютерные программы

ПОИСК ПО САЙТУ | о проекте
pngcrush
Тип Оптимизатор изображений
Автор Glenn Randers-Pehrson
Написана на C
Операционная система Кроссплатформенное программное обеспечение
Последняя версия 1.7.12 (6.08.2010)
Лицензия Libpng License[d]
Сайт pmt.sourceforge.net/pngc…

pngcrush — это бесплатная утилита, с открытым исходным кодом. Используется для оптимизации фильтров PNG изображений. Дает возможность снизить размер файла без потерь — это означает, что «crushed» картинки будут иметь качество исходного изображения.

Главной целью pngcrush является уменьшение размера PNG с помощью потока данных IDAT, посредством комбинации методов сжатия и дельта-фильтров. Однако, pngcrush может также использоваться для других действий с изображениями формата PNG, к примеру, изменение глубины изображения или удаление нежелательных вспомогательных блоков, добавление определенных блоков, включая gAMA, tRNS, iCCP и текстовый блок.

Основные операции

Основное использование pngcrush заключается в уменьшении размера включенных в изображение данных секции IDAT.

Данные о пикселях в файле PNG сжимаются с использованием алгоритма LZ77 (который находит повторяющиеся последовательности байтов в исходном файле), после которого сжимается алгоритмом Хаффмана. Эта комбинация напоминает нам алгоритм DEFLATE. Перед сжатием, к пиксельным данным применяется безопасный дельта-фильтр

Существует 5 возможных типов фильтра, которые могут быть использованы отдельно на каждом шаге сканирования. В принципе, есть несколько возможных путей поиска совпадений LZ77. Таким образом, существует огромное множество различных комбинаций того, как может быть сжато изображение. Которая из них будет сжимать лучше, зависит от свойств самого изображения[1]

pngcrush сжимает изображение несколькоми различными комбинациями, а потом сохраняет наименьший из полученных файлов[2] Так как не представляется возможным осуществить все возможные комбинации, pngcrush использует некоторые эвристики для выбора пути.

В простейшем случае pngcrush может быть вызван создать «crushed» файл из не оптимизированного, используя следующий формат, с помощью команды:

pngcrush imageIn.png imageOut.png

По умолчанию, pngcrush использует лишь несколько общих методов сжатия файла. Необязательный «-brute» метод сжатия может быть использован для brute force сжатия, который может использовать более 100 разных методов сжатия.

Сокращение размера файла через удаление данных о цвете

Одной из особенностей pngcrush является способность удалять все данные о коррекции цвета(гамма, баланс белого, цветовой профиль ICC, стандартный профиль RGB) из PNG файла, используя следующие команды:

pngcrush -rem gAMA -rem cHRM -rem iCCP -rem sRGB InputFile.png OutputFile.png

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

Все вспомогательные блоки и текст могут быть удалены с помощью команды:

pngcrush -rem gAMA -rem alla -rem text InputFile.png OutputFile.png

Изменение изображения

Pngcrush может быть использовано для кодирования цвета изображения. Если используется 10 цветов, но цветовая палитра состоит из 256 (8 бит), pngcrush сможет преобразовать палитру в 4-битовую и урезать её до 10 цветов:

pngcrush -bit_depth 4 -plte_len 10 image1.png image2.png

Также pngcrush может быть использована для изменения цветности. Для изображения true-color, изменение цветности с 2 до 0(-c 0) изменит его на черно-белое (оттенки серого). Такое изображение значительно меньше исходного, так как, в дополнение к Альфа-каналу, только один 8-битовый канал используется на пиксель, а не три. Черно-белое изображение намного меньше также и потому, что не требует цветовой палитры. Для полноцветных же изображений изменение типа цвета с 6 до 2 удалит альфа-канал.

Манипуляции с метаданными и блоками

Изображения PNG содержат блоки с информацией про изображение, такие как разрешение (физический блок), дату последнего изменения (блок tIME) и текстовые метаданные (текстовый блок и его варианты). Используя pngcrush пользователь может редактировать или удалять эти вспомогательные блоки:

pngcrush -res 96 -rem time -text b "Software" "pngcrush" image1.png image2.png

Эта команда изменяет разрешение до 96 dpi, удаляя временные метки, и свойство «создатель изображения» на «pngcrush».

См. также

Похожие PNG-компрессоры:

Аналогичные программы для JPG:

Примечания

  1. Cosmin Truta. A guide to PNG optimization (10 May 2008). Проверено 31 июля 2010. Архивировано 1 июля 2012 года.
  2. Whedon, David man pngcrush. Проверено 31 июля 2010. Архивировано 1 июля 2012 года.
  • Steve Souders, Even Faster Web Sites: Essential Knowledge for Frontend Engineers, O’Reilly Media, 2009, ISBN 0-596-52230-4, p. 142
  • Khalid Sayood, Lossless compression handbook, Academic Press, 2003, ISBN 0-12-620861-1, pp. 386–388

Ссылки

Данная страница на сайте WikiSort.ru содержит текст со страницы сайта "Википедия".

Если Вы хотите её отредактировать, то можете сделать это на странице редактирования в Википедии.

Если сделанные Вами правки не будут кем-нибудь удалены, то через несколько дней они появятся на сайте WikiSort.ru .




Текст в блоке "Читать" взят с сайта "Википедия" и доступен по лицензии Creative Commons Attribution-ShareAlike; в отдельных случаях могут действовать дополнительные условия.

Другой контент может иметь иную лицензию. Перед использованием материалов сайта WikiSort.ru внимательно изучите правила лицензирования конкретных элементов наполнения сайта.

2019-2024
WikiSort.ru - проект по пересортировке и дополнению контента Википедии