Як отримати pngcrush для перезапис оригінальних файлів?


15

Я прочитав, man pngcrushі здається, що немає можливості розчавити файл PNG і зберегти його над оригіналом. Я хочу стиснути кілька папок, варті PNG-файлів, тому було б корисно зробити це однією командою!

В даний час я роблю pngcrush -q -d tmp *.pngвручну, вставляючи файли з tmpкаталогу в оригінальну папку. Тож я думаю, використання mvнайкращого способу використання може бути? Якісь кращі ідеї?

Відповіді:


17

Усі в одному рядку:

for file in *.png; do pngcrush "$file" "${file%.png}-crushed.png" && mv "${file%.png}-crushed.png" "$file"; done

повинен це зробити.

(Хоча поки що в моїх власних тестах, менше половини PNG, на яких я тестував pngcrush, згодом були меншими, тому кольором мене не вражали .)


Спасибі! Кількість стиснення PNG може залежати від способу їх виготовлення. Я вважаю, що "Зберегти для Інтернету" Photoshop вбудовано певну форму дробарки PNG.
DisgruntledGoat

Більшість шахт були створені за допомогою команди імпорту ImageMagick. Я уникаю комерційного програмного забезпечення, такого як Photoshop, коли це можливо.
frabjous

4
використовувати -рубіт для кращого стиснення.
Колін Андерсон

1
Інший відповідь тепер краще з нової Pngcrush.
Гюго

22

З версії 1.7.22 pngcrushє опція перезапису.

Спробуйте

pngcrush -ow file.png

Щоб отримати докладнішу інформацію, перегляньте журнал змін :

Version 1.7.22  (built with libpng-1.5.6 and zlib-1.2.5)
  Added "-ow" (overwrite) option.  The input file is overwritten and the
    output file is just used temporarily and removed after it is copied
    over the input file..  If you do not specify an output file, "pngout.png"
    is used as the temporary file. Caution: the temporary file must be on
    the same filesystem as the input file.  Contributed by a group of students
    of the University of Paris who were taking the "Understanding of Programs"
    course and wished to gain familiarity with an open-source program.
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.