Pngcrush

Pngcrush
pngcrush
Pngcrush.png
Тип

Оптимизатор изображений

Автор

Glenn Randers-Pehrson

Написана на

C

Операционная система

Кроссплатформенное программное обеспечение

Последняя версия

1.7.12 (6.08.2010)

Сайт

http://pmt.sourceforge.net/pngcrush/

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-компрессоры:

  • OptiPNG - форк pngcrush, иногда заметно превосходит исходный pngcrush
  • PNGOUT
  • AdvanceCOMP
  • Image-Pngslimmer

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

  • jpgcrush

Примечания

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

Ссылки


Wikimedia Foundation. 2010.

Игры ⚽ Поможем решить контрольную работу

Полезное


Смотреть что такое "Pngcrush" в других словарях:

  • Pngcrush — Infobox Software name = pngcrush caption = pngcrush 1.5.10 developer = Glenn Randers Pehrson latest release version = 1.6.10 (executable) latest release date = release date|2008|09|28 operating system = Cross platform genre = Image optimizer… …   Wikipedia

  • Pngcrush — Screenshot Pngcrush ist ein freies Kommandozeilenwerkzeug, um die Komprimierung von PNG Bilddateien zu optimieren, wodurch die Dateigröße in den meisten Fällen verkleinert wird. Die erneute Kompression erfolgt ohne Qualitätsverluste. Pngcrush… …   Deutsch Wikipedia

  • Portable Network Graphics — PNG A PNG image with an 8 bit transparency channel (top). The same image is overlaid onto a checkered background (botto …   Wikipedia

  • OptiPNG — Тип Сжатие изображений Разработчик Cosmin Truţa Написана на …   Википедия

  • .png — Portable Network Graphics Dateiendung .png MIME Type image/png, image/x png …   Deutsch Wikipedia

  • Image/png — Portable Network Graphics Dateiendung .png MIME Type image/png, image/x png …   Deutsch Wikipedia

  • PNG-Format — Portable Network Graphics Dateiendung .png MIME Type image/png, image/x png …   Deutsch Wikipedia

  • Png — Portable Network Graphics Dateiendung .png MIME Type image/png, image/x png …   Deutsch Wikipedia

  • Portable Network Grafics — Portable Network Graphics Dateiendung .png MIME Type image/png, image/x png …   Deutsch Wikipedia

  • Portable Network Graphic — Portable Network Graphics Dateiendung .png MIME Type image/png, image/x png …   Deutsch Wikipedia


Поделиться ссылкой на выделенное

Прямая ссылка:
Нажмите правой клавишей мыши и выберите «Копировать ссылку»