man pngcrush
を読みましたが、PNGファイルを押しつぶして元のファイルに保存する方法はないようです。 PNGに相当するいくつかのフォルダーを圧縮したいので、1つのコマンドですべてを実行すると便利です。
現在、pngcrush -q -d tmp *.png
を実行してから、tmp
ディレクトリから元のフォルダーにファイルを手動でカットアンドペーストしています。 mv
を使用するのが最善の方法かもしれません。より良いアイデアはありますか?
すべてを1行で:
for file in *.png; do pngcrush "$file" "${file%.png}-crushed.png" && mv ${file%.png}-crushed.png" "$file"; done
それを行う必要があります。
(これまでのところ、私自身のテストでは、pngcrush
でテストしたpngの半分未満はその後小さくなりました。
バージョン1.7.22以降、pngcrush
には上書きオプションがあります。
試してみる
pngcrush -ow file.png
詳細については、 Changelog を参照してください。
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.