pngcrushを取得して元のファイルを上書きする方法は?


15

私は読み通しましたがman pngcrush、PNGファイルを粉砕して元のファイルに保存する方法はないようです。PNGに相当するいくつかのフォルダーを圧縮したいので、1つのコマンドですべてを実行すると便利です。

現在pngcrush -q -d tmp *.pngtmpディレクトリから元のフォルダにファイルを手動でカットアンドペーストしています。だからmv、使用するのが最善の方法かもしれないと思いますか?より良いアイデアはありますか?

回答:


17

すべて1行で:

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

それを行う必要があります。

(これまでのところ、私自身のテストでは、テストpngcrushしたpngの半分未満がその後小さくなったので、感銘を受けないように色付けしました。)


ありがとう!PNGを圧縮できる量は、PNGの作成方法によって異なります。Photoshopの「Web用に保存」には、何らかの形式のPNGクラッシャーが組み込まれていると思います
。– DisgruntledGoat

私のほとんどは、ImageMagickのインポートコマンドで作成されました。Photoshopのような商用ソフトウェアは可能な限り避けます。
派手な

4
圧縮を改善するには、-bruteを使用します。
コリンアンダーソン

1
もう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.
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.