2016-09-20 22 views
0

ImageMagickをダウンロードして、作業中のイメージのフォルダをバッチ処理し、サイズを切り取り、12等分にスライスすることができました。私は個々のタスクを個別に行うことができますが、むしろSTDINとSTDOUTを使用してすべてを1行で実行したいと思います。しかし、ここでの回答やウェブサイト上のドキュメントを見ても、私はそれを動作させることに近いものではありません。ImageMagickのSTDIN/STDOUTの適切な構文

私はWindows Powershellで作業しています。ここでは、単一の画像での作業、私が試したものです:

convert -crop '5072x3552+87+0' image.jpg jpg:- | convert -crop '1268x1184' - jpg: - | convert -crop '1268x1030+0+0' - C:\folder1\folder2\folder3\square.jpg 

これは私にエラーのシリーズを提供します:

CONVERT.EXE:このイメージ・フォーマットのための無デコードデリゲート `」 エラー@を/constitute.c/ReadImage/508。

convert.exe:イメージは「jpg: - 」@ error/convert.c/ConvertImageCommand/3253と定義されていません。

convert.exe:このイメージ形式のデコード代理人はありません。 '' @ エラー/構成ファイル/ ReadImage/508。

CONVERT.EXE:私は\ユーザー エラー/ convert.c/ConvertImageCommand/3253

@ \ lmcane \デスクトップ\ IMAGEMの\テスト\のleaf.jpg」:何のイメージが `Cを定義していませんWindows 7でImageMagick 7.0.2を使用します。Windows PowerShellは管理者として開きます。

imagemagickでSTDINとSTDOUTをフォーマットする際の追加ガイダンスを歓迎します。

助けてください。

image for reference

process for single original image

+0

私はあなたがこれを必要以上に困難にしていると思います。画像がいっぱいのフォルダがあると分かりますが、それは問題ありませんが、各画像に何をしようとしているのか分かりません。英語で簡単に説明できますか?あなたはそれをどんなサイズに切り分けたいですか?どこから始めますか?そしてそれを12等分に分割する - それは12の等しいスライスのinageの全幅ですか?または全部で12個のスライスがありますか?または3x4?または4x3?または6x2?呼び出されるスライスは何ですか? –

+0

私はそれに3x4のグリッドと左と下のいくつかの余分なスキャン画像を持っています。目標:グリッドの各部分を抽出します。ステップ1)作物で左と下の余分を取り除く。ステップ2)imagemagickのタイルクロップ機能を使用して画像を12個に切ります。ステップ3)いくつかの目的は、結果として得られる各画像の底部部分を除去することを必要とする。これは、さらにトリミングすることによって達成され、その結果、グリッド内のオブジェクトのきれいな画像が得られる。各ステップのピクセルの高さ/幅は、デスティネーションフォルダから除去する余分な部分が残らないように計算されます。 – MahiMai

+0

画像を投稿できますか? –

答えて

0

私は-fuzz(境界線の色の差が小さい)と-trimを使用して、エッジの最初のトリムを試みます。それはあなたにこれを取得します。

convert grid.png -fuzz 30% -trim trimmed.png 

その後、私は4x3のためにタイルだろうと、彼らは元の画像内の位置を忘れて画像をrepage:

convert trimmed.png -crop [email protected] +repage step2.png 

今すぐトップス、ボトムスと側面をオフにトリミングし、個々の12個のフレームを保存:

convert step2.png -crop 130x100+20+20 f-%02d.png 

今、あなたは、元の画像の外縁よりも、ここであまり変化があるように思われるよう若干異なるファズを使用して、過剰にトリミングすることができます。そして、私はまた、一度にある全12枚の画像のすべてのステップを行い1で一緒にすべてのコマンドを入れている:

convert grid.png -fuzz 30% -trim -crop [email protected] +repage -crop 130x100+20+20 -fuzz 5% -trim f-%02d.png 

あなたが他の画像の曖昧度でプレイしているかもしれませんが、あなたはどのように表示されるはずですそれは今働く。

+0

残念ながら、最終的な結合線は機能しませんでした。率直に言って、私は得た結果を理解していないが、それは非常に間違っている。順番に行をする:最初のステップは何もしなかった。 2番目のステップは画像を12に分割したので、正しい構文を教えてくれてありがとう。 3行目は私に面白い結果をもたらしますが、私がリテラルサイズの参照として投稿した画像を使用していたからと思われます。 (実際の画像はもっと大きくなっています)。いずれにしても、進歩するための文法参照を私に与えてくれたようです。私はどちらの方法でも確認します! – MahiMai

+0

それは働いた!ここで私は結んだ行です:convert grid.jpg -crop 5072x3552 + 87 + 0 -crop 4x3 @ + repage -crop 1268x1030 + 0 + 0 C:\ users \ name \ desktop \ imagem \ test \ result.jpgありがとうあなたの助けに!だから、私はこのインスタンスでSTDIN/STDOUTを使う必要はなくても、私と正しい構文を共有してもらえますか? – MahiMai

+0

申し訳ありませんが、* "STDIN/STDOUT" *メソッドが何を意味しているのか分かりません。また、十分なときに複数の 'convert'コマンドを使用する点について理解できません。 –

0

convertは、これらのエラーをスローし、なぜ私が説明することはできませんが、私はそれは、トランスポートフォーマットとしてxwdを使って仕事を得ることができました:

convert -crop '5072x3552+87+0' image.jpg xwd:- | 
    convert -crop '1268x1184' xwd:- xwd:- | 
    convert -crop '1268x1030+0+0' xwd:- C:\folder1\folder2\folder3\square.jpg 
+0

ええええええええええええええええええええええええええええええええええええええええええええええええええええええ,,,,私はバグ全体を処理するためにimage.jpgをimage _jp.jpgに変更すると、私の作業ディレクトリでは "xwd"と呼ばれています。私は、宛先フォルダに36画像を取得する必要があります。それぞれの開始イメージは、最初のステップでは切り捨てられ、2番目のステップでは12に分割され、3番目では底の一部を切り捨てる、左と下の余分な12のグリッドです。バッチ処理もしないでください。 – MahiMai

関連する問題