2012年5月21日月曜日

Linuxのシェルを使ってXピクセルよりも大きいPNG画像を検索する

あなたのウェブサイトのデザインを変更することで作業しようとしているときに、あなたの記事のコンテンツの画像の幅を気にする必要があります。私はそれが新しいデザインに合わせて幅が広すぎになるだろうしている画像を見つけ出すことが重要なサイドバーを大きくしたいそうなら、私が書いた記事のほとんどに悪名高い大規模なスクリーンショットを持っている。

私はプログラマーだので、私はこれを実行する小さなアプリケーションを作成することは簡単ですが、それは私が考え始めたのですか...なぜ私はLinuxのコマンドラインでこれを行うことができないのですか?

私が考え出した最初の事はあなたがそれらの"ファイル"コマンドを実行すると、PNG画像のサイズのデータ​​を表示するということでした。

image3.png $ファイル
image3.png:PNGの画像データ、613 X 657、8-bit/color RGBA、ノンインターレース

このサイト上の画像の99%以来、非常に有用ではPNG形式です。だから今私のuploadディレクトリ内のすべてのファイルに対してループでそれをスローする。

*. PNGにおけるfの$、ファイル$ fを行うこと。行わ

image.png:PNGの画像データ、631 X 185、8-bit/color RGBA、ノンインターレース
image1.png:PNGの画像データ、631 × 96、8-bit/color RGBA、ノンインターレース
image10.png:PNGの画像データ、375 X 395、8-bit/color RGBA、ノンインターレース
image11.png:PNGの画像データ、484 X 241、8-bit/color RGBA、ノンインターレース
-snipped-

これはさらに有用ですが、私はデータをソートするためにExcelや同様のアプリケーションにデータをプルする必要があると思いますので、私はちょうど幅の列を取り出すことがLinuxの"カット"コマンドを使用することを決めた。

あなたはそれが区切り文字としてスペースを使用するためにカット指示した後、F5のパラメータが第5列目を取るためにカット指示、および- d 空間に気付くでしょう。スラッシュの文字は文字としてではなく、空白としてのスペースを使用するためにシェルに指示するエスケープ文字です。

*. PNGにおけるfの$は、ファイル$ fを実行する|カットF5 - D ;行わ

631
631
375
484
-snipped-

全く有用ではない出力は、それを何ですか? if文の幅が600ピクセルよりも大きい場合にはbashを経由して、唯一のfileコマンドの出力を示すことが押してみましょう。

周りに`(バッククォート)マークに注意してください"$ fはファイル|カット..."内部コマンドは`の単一出力として処理され、に供給されることを示すセクション、場合我々は(より大きい)- GTを使用するステートメントを、。また、括弧の両側の前後のスペース[]を必要とすることに注意してください

*. PNGにおけるfの、場合の対処[`ファイル$ F |カットF5 - D `- GT 600];して$ fをファイル; FI;行わ

image.png:PNGの画像データ、631 X 185、8-bit/color RGBA、ノンインターレース
image1.png:PNGの画像データ、631 × 96、8-bit/color RGBA、ノンインターレース
image17.png:PNGの画像データ、638 × 340、8-bit/color RGBA、ノンインターレース
image18.png:PNGの画像データ、608 X 448、8-bit/color RGBA、ノンインターレース
-snipped-

今、私たちは、幅600ピクセルを超えるすべてのファイルのリストを持っている。あなたはどこか別の場所にコピーまたは移動する必要がある場合はファイル名だけをエコーバックする為に、最後に"ファイル$ f"を調整することができます:

*. PNGにおけるfの、[`ファイル$ F |カットF5 - D `- GT 600]はどうか、FI;終了して$ fをエコー

image.png
image1.png
image17.png
image18.png
-snipped-

Linuxのシェルは非常に強力です!このソリューションは、本当に誰のための実用的ではありませんが、必要なときにこのタイプのタスクを達成できるようにそれは、シェルで作業する方法を知って良いことだ。

0 件のコメント:

コメントを投稿