Может кто-нибудь, пожалуйста, объясните четко, как использовать "pngcrush" для умножения элементов

У меня есть стопка сотен картинок, и я хочу использовать pngcrush для уменьшения размера файла.

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

Может кто-нибудь, пожалуйста, объясните, как это сделать четко.

Спасибо Шани

4 ответа

Решение

Вы можете использовать следующий скрипт:

#!/bin/bash

# uncomment following line for more aggressive but longer compression
# pngcrush_options=-reduce -brute -l9
find . -name '*.png' -print | while read f; do
  pngcrush $pngcrush_options -e '.pngcrushed' "$f"
  mv "$f" "${f/%.pngcrushed/}"
done

Текущие версии pngcrush поддерживают эту функциональность из коробки.

(Я использую pngcrush 1.7.81)

pngcrush -dir outputFolder inputFolder/*.png

создаст "outputFolder", если он не существует, и обработает все файлы.png в "inputFolder", поместив их в "outputFolder".

Очевидно, что вы можете добавить другие варианты, например,

pngcrush -dir outputFolder -reduce -brute -l9 inputFolder/*.png

В 2023 году есть лучшие инструменты для оптимизации изображений PNG, такие как OptiPNG.

    • установить
      sudo apt-get install optipng
    • использовать для одного изображения
      optipng imagen.png
    • использовать для всех изображений в папке
      find /path/to/files/ -name '*.png' -exec optipng -o7 {} \;

опционально команда -o определяет качество, возможное от 1 до 7, где 7 — максимальный уровень сжатия изображения.

      -o7

Исправление с высоким рейтингом кажется мне опасным; он начал сжимать все файлы png в моем iMac; Необходима команда, ограниченная указанным каталогом; Я не специалист по UNIX; Я отменил новые файлы, выполнив поиск всех файлов, оканчивающихся на .pngcrushed и удалив их

Другие вопросы по тегам