Инструменты оптимизации PNG

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

Я хочу реализовать подобную опцию оптимизации как часть процесса загрузки изображения моего веб-сайта; кто-либо знает о существующей ранее библиотеке (PHP или Python предпочтительно), что я могу насладиться для этого? Краткий Google указал на меня к нескольким инструментам стиля командной строки, но я не спустился бы по тому маршруту, если это возможно.

11
задан Mathew 3 January 2010 в 02:03
поделиться

4 ответа

Выполните с помощью PHP эту утилиту командной строки

  pngcrush -rem gAMA -rem cHRM -rem iCCP -rem sRGB -brute -l 9 -max -reduce -m 0 -q IMAGE
  optipng -o7 -q pngout.png
  pngout pngout.png -q -y -k0 -s0
  advpng -z -4 pngout.png > /dev/null
14
ответ дан 3 December 2019 в 05:34
поделиться

Я бы усомнился в мудрости выброса других порций (таких как gAMA и iCCP), но если вы хотите это сделать, то достаточно просто использовать PyPNG для удаления порций:

#!/usr/bin/env python
import png
import sys

input=sys.stdin
out=sys.stdout

def critical_chunks(chunks):
    for type,data in chunks:
        if type[0].isupper():
            yield type,data

chunks = png.Reader(file=input).chunks()
png.write_chunks(out, critical_chunks(chunks))

функция critical_chunks, по сути, отфильтровывает все порции, кроме порций критического PNG (4-буквенный тип для критической порции начинается с заглавной буквы)

.
2
ответ дан 3 December 2019 в 05:34
поделиться

Пока ваш PHP скомпилирован с поддержкой GD2 (в настоящее время это довольно распространено):

<?php
$image = imagecreatefromstring(file_get_contents('/path/to/image.original.png'));
imagepng($image, '/path/to/image.smushed.png', 9);

Это будет считываться в любом формате изображения, который понимает GD2 (а не только PNG) и выводить PNG gzipped как максимальный уровень сжатия без ущерба для качества.

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

3
ответ дан 3 December 2019 в 05:34
поделиться

Вы слышали о PNGCrush? Вы можете проверить исходный код, часть PNG и MNG Tools на SourceForge , и расшифровать или обернуть его на Python.

2
ответ дан 3 December 2019 в 05:34
поделиться
Другие вопросы по тегам:

Похожие вопросы: