2016-08-01 1 views
0

出力イメージの幅と高さが偶数(奇数でない)になるようにImageMagickのコマンドラインバージョンでイメージをトリミングすることができますか?正確には、出力画像を最初にトリミングして透明なピクセルで埋め尽くす必要があります。必要なすべての操作の後に、保存された 'ページジオメトリ'または 'オリジンジオメトリ'(%[fx:page.x]%[fx:page.y]形式変数としても使用可能)にアクセスしたいので、 。イメージをトリミングして、そのサイズを偶数にする

これは広範なシェル/バッチスクリプトでは達成できると私は理解していますが、率直に言って私はスマートな1ライナーを探しています。

+0

私はシェルの4行を入札します...幅と高さを取得するには1、丸めには1幅を1に、高さを1に、サイズを1に変更します。 –

+0

私はbashの2行に入札を改善します... 1は、幅と高さに1を加えてサイズを変更します。 –

+0

私の答えはあなたの問題を整理しましたか?もしそうなら、それをあなたの答えとして受け入れることを検討してください - 投票数の横にある緑色のチェックマーク/チェックマークをクリックしてください。そうでない場合は、私が、または他の誰かがあなたをさらに助けることができるように、何がうまくいかないと言ってください。ありがとう。 http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work/5235#5235 –

答えて

1

更新回答

トリミングやサイズ変更ではなく、あなたがイメージを埋めたいと思われるので、あなたは、あなたがコメントで言うよう-extentを使用していることを行うことができます。

convert image.png -background orange -extent $(convert image.png -format '%[fx:2*int((w+1)/2)]x%[fx:2*int((h+1)/2)]!' info:) result.png 

をご希望の場合透明なピクセルが埋め込まれた画像のように、私のややスタイリッシュなオレンジ色のもの(!)の代わりにorangenoneに変更してください。

デフォルトの-gravityはNorthWestであるため、これは右下に貼り付けられます。たとえば、左上のパッドを使用したい場合は、-extentの前に-gravity SouthEastを使用します。

オリジナル回答

テストされていないが、動作するはずです...

これはあなたに新しい次元を取得します:

convert image.png -format '%[fx:2*int((w+1)/2)]x%[fx:2*int((h+1)/2)]!' info: 

だから、あなたがする必要があります。

convert image.png -resize $(COMMAND ABOVE) result.png 
+0

このコードはイメージのサイズを変更し、大きなサイズのキャンバスを元のサイズに維持したいと考えました。私は私の質問で十分に正確ではなかったので、非難を受けます。それにもかかわらず、私たちは '-resize'を' -extent'に変更することができたので私を助けました。 – rostok

+1

もう一度見てください - 私はいくつかのより有用なものを追加しました。 –

+0

ありがとう、それはそれを行う必要があります!私はIMをv7にアップグレードしましたが、今では他のパラメータでFX表現を解析できることは確信しています。それで、「magick image.png -background orange -extent」%[fx:2 * int((w + 1)/ 2)] x%[fx:2 * int((h + 1)/ 2)]! " result.png'も動作します。不幸にも、私はそれを怒らせることができません。 – rostok

関連する問題