Bagaimana cara mendapatkan pngcrush untuk menimpa file asli?

15

Saya sudah membaca man pngcrushdan sepertinya tidak ada cara untuk menghancurkan file PNG dan menyimpannya di atas yang asli. Saya ingin mengompres beberapa folder senilai PNG sehingga akan berguna untuk melakukan semuanya dengan satu perintah!

Saat ini saya sedang melakukan pngcrush -q -d tmp *.pngcut-paste file secara manual dari tmpdirektori ke folder asli. Jadi saya kira menggunakan mvmungkin cara terbaik untuk pergi? Ada ide yang lebih baik?

DisgruntledGoat
sumber

Jawaban:

17

Semua dalam satu baris:

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

harus melakukannya.

(Meskipun sejauh ini dalam tes saya sendiri, kurang dari setengah pngs yang saya uji pngcrushlebih kecil setelahnya, jadi warnai saya tanpa kesan.)

luar biasa
sumber
Terima kasih! Jumlah yang dapat Anda kompres PNG dapat bergantung pada bagaimana mereka dibuat. Saya percaya Photoshop "Save for Web" memiliki beberapa bentuk penghancur PNG bawaan.
DisgruntledGoat
Sebagian besar milik saya dibuat dengan perintah impor ImageMagick. Saya menghindari perangkat lunak komersial seperti Photoshop bila memungkinkan.
frabjous
4
gunakan -brute untuk kompresi yang lebih baik.
Collin Anderson
1
The jawaban lain sekarang lebih baik dengan pngcrush baru.
Hugo
22

Sejak versi 1.7.22, pngcrushmemiliki opsi menimpa.

Mencoba

pngcrush -ow file.png

Lihat Changelog untuk informasi lebih lanjut:

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.
Jan
sumber