Pngquant

Изображения, фотографии, моделирование

Модераторы: Olej, vikos

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Pngquant

Непрочитанное сообщение Olej » 16 дек 2019, 14:33

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

Статья про Pngquant здесь: Pngquant - утилита командной строки для сжатия изображений PNG в Linux.

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Pngquant

Непрочитанное сообщение Olej » 16 дек 2019, 14:35

Код: Выделить всё

olej@ACER:~$ aptitude search pngquant
p   pngquant                                                                - PNG (Portable Network Graphics) image optimising utility                          

Код: Выделить всё

olej@ACER:~$ aptitude show pngquant
Пакет: pngquant                                  
Версия: 2.12.2-1
Состояние: установлен
Установлен автоматически: нет
Приоритет: необязательный
Раздел: graphics
Сопровождающий: Debian PhotoTools Maintainers <pkg-phototools-devel@lists.alioth.debian.org>
Архитектура: amd64
Размер в распакованном виде: 59,4 k
Зависит: libc6 (>= 2.14), libimagequant0 (>= 2.11.10), liblcms2-2 (>= 2.2+git20110628), libpng16-16 (>= 1.6.2-1), zlib1g (>= 1:1.1.4)
Описание: PNG (Portable Network Graphics) image optimising utility
 pngquant is a command-line conversion utility to quantize and dither truecolor PNG images, especially those with a full alpha channel, down to 8-bit (or
 smaller) RGBA-palette PNGs. Such images are usually two to four times smaller than the full 32-bit versions, and partial transparency is preserved quite
 nicely. This makes pngquant especially useful both for Web sites and for PlayStation 2 development, where one of the texture formats is RGBA-palette-based
 (though not PNG-compressed). This is the same technique used for many of the images on the Miscellaneous Transparent PNGs page
 (http://www.libpng.org/pub/png/pngs-img.html), and the results are often indistinguishable from the original, truecolor PNG images. 
 
 Optimizers (like pngcrush and optipng) optimize the compression, usually losslessly, while pngquant quantizes colors down to 256 (or fewer) distinct RGBA
 combinations, which is lossy.
Домашняя страница: http://pngquant.org/
Метки: implemented-in::c, interface::commandline, role::program, scope::utility, use::compressing, use::converting, works-with-format::png, works-with::image,
       works-with::image:raster

Код: Выделить всё

olej@ACER:~$ sudo apt install pngquant
[sudo] пароль для olej: 
Чтение списков пакетов… Готово
Построение дерева зависимостей       
Чтение информации о состоянии… Готово
Следующие НОВЫЕ пакеты будут установлены:
  pngquant
Обновлено 0 пакетов, установлено 1 новых пакетов, для удаления отмечено 0 пакетов, и 64 пакетов не обновлено.
Необходимо скачать 21,7 kB архивов.
После данной операции объём занятого дискового пространства возрастёт на 59,4 kB.
Пол:1 http://deb.debian.org/debian buster/main amd64 pngquant amd64 2.12.2-1 [21,7 kB]
Получено 21,7 kB за 0с (103 kB/s)
Выбор ранее не выбранного пакета pngquant.
(Чтение базы данных … на данный момент установлено 419508 файлов и каталогов.)
Подготовка к распаковке …/pngquant_2.12.2-1_amd64.deb …
Распаковывается pngquant (2.12.2-1) …
Настраивается пакет pngquant (2.12.2-1) …
Обрабатываются триггеры для man-db (2.8.5-2) …

Код: Выделить всё

olej@ACER:~$ pngquant --help
pngquant, 2.12.0 (January 2018), by Kornel Lesinski, Greg Roelofs.
   Compiled with no support for color profiles. Using libpng 1.6.36.

usage:  pngquant [options] [ncolors] -- pngfile [pngfile ...]
        pngquant [options] [ncolors] - >stdout <stdin

options:
  --force           overwrite existing output files (synonym: -f)
  --skip-if-larger  only save converted files if they're smaller than original
  --output file     destination file path to use instead of --ext (synonym: -o)
  --ext new.png     set custom suffix/extension for output filenames
  --quality min-max don't save below min, use fewer colors below max (0-100)
  --speed N         speed/quality trade-off. 1=slow, 3=default, 11=fast & rough
  --nofs            disable Floyd-Steinberg dithering
  --posterize N     output lower-precision color (e.g. for ARGB4444 output)
  --strip           remove optional metadata (default on Mac)
  --verbose         print status messages (synonym: -v)

Quantizes one or more 32-bit RGBA PNGs to 8-bit (or smaller) RGBA-palette.
The output filename is the same as the input name except that
it ends in "-fs8.png", "-or8.png" or your custom extension (unless the
input is stdin, in which case the quantized image will go to stdout).
If you pass the special output path "-" and a single input file, that file
will be processed and the quantized image will go to stdout.
The default behavior if the output file exists is to skip the conversion;
use --force to overwrite. See man page for full list of options.

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Pngquant

Непрочитанное сообщение Olej » 16 дек 2019, 14:41

Проверяем...

Код: Выделить всё

olej@ACER:~/Изображения$ du -hs scr.png 
1,8M	scr.png
scr.png - это один из снятых в Linux скриншотов.
Сжимаем:

Код: Выделить всё

olej@ACER:~/Изображения$ pngquant scr.png 

olej@ACER:~/Изображения$ du -hs scr-fs8.png 
700K	scr-fs8.png
(по умолчанию, если команде не указана опция --output, она приписывает имени обрабатываемого файла суффикс -fs8)

Итог: размер ужат в 2,57 раза.
При том что визуально качество практически не пострадало:
scr-fs8.png

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Pngquant

Непрочитанное сообщение Olej » 16 дек 2019, 15:05

Olej писал(а):
16 дек 2019, 14:41
Итог: размер ужат в 2,57 раза.
Ещё эксперимент:

Код: Выделить всё

olej@ACER:~/Изображения$ pngquant Снимок\ экрана\ от\ 2019-12-16\ 14-01-17.png --output k1.png

Код: Выделить всё

olej@ACER:~/Изображения$ du -hs *.png
48K	k1.png
128K	Снимок экрана от 2019-12-16 14-01-17.png
128÷48=2,6667
Изображение

Ответить

Вернуться в «Графика»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость