2016-11-10 5 views
0

私は伸びと重力について知っています。イメージがあり、そのキャンバスのサイズを400x400に増やしたいと思います。既存のイメージをキャンバス内の特定のXとYに配置したいと思います。私は特定の値を持っていますが、そこにイメージを移動する能力が必要です。Imagemagickでは作物の反対は何ですか?画像の片面にパディングを追加する

ここは例です。

width = 52 
page.x = 158 
400 - width - page.x = 190 

height = 107 
page.y = 146 
400 - height - page.y = 147 

この例では、画像は400×400に52x107からリサイズする必要があり、画像は、この必要性400x400のキャンバスに158x146で開始する必要があります。

+0

期待される最終画像を添付することは常に良い考えです。 52x107は400x400に拡大されないので、画像を切り取ったり歪んだりしたり、元の画像と異なる400x400のキャンバスにしたりしますか? – Bonzo

答えて

0

元の52x107イメージを歪ませない場合は、-repage +{left}+{top}と同じくらい簡単かもしれません。

# Given a 52x107 image. 
convert -size 52x107 xc:orange 52x107.png 

52x107.png

# Create a blank canvas to act as the padding. 
convert -size 400x400 xc:lime \(52x107.png -repage +158+146 \) -flatten out.png 

out.png

この例では、画像は400×400に52x107からリサイズする必要があり、画像は、この必要性400x400のキャンバスに158x146で開始する必要があります。あなたがを行うように聞こえるしかし

400x400のに小さな画像のサイズを変更したい、とパディング/ wのオフセットを調整。

out2.png

... または

# Using rose: for example 
convert -size 400x400! xc:lime \ 
     \(rose: -resize 400x400! -repage +158+146 \) \ 
     -flatten out2.png 

...多分、私はOPの質問を理解していないよ、

OFFSET=$(identify -format '+%[fx:(400-w)/2]+%[fx:(400-h)/2]' rose:) 
convert rose: -repage $OFFEST \ 
     \(+clone -resize 400x400! -repage +0+0 \) \ 
     -swap 0,1 -flatten out3.png 

out3.png

よりダイナミックな何かをしようとする。しかし。指定されたオフセットと

+0

ありがとうございました。私はこれを少し違うスタイルに変換する必要があります。これは私が変換したものです。 $ img。 '.png /gradient/gradient.png -clut今、私はそのイメージを持っており、あなたが私に与えたものをこのイメージに適用したいと思います。どうすればいい? – Iscariot

0

「-extent」オプションは、正確に何をしたいん:

magick -size 52x107 xc:orange -background lime \ 
     -extent 400x400-158-146 52x107-400x400.png 

-extent 400x400-158-146オプションは、「400x400のに画像を拡張し、拡張された画像の左上隅を置く意味します元の画像に対して位置(-158、-146)で表示されます。

関連する問題