2016-06-02 5 views
0

画像のサイズを変更しても画像の縦横比を同じにして表示したいが、画像が伸びているように見せたい。 50×50の3つの画像があります。アスペクト比を維持することによって、左の画像のサイズを変更します。他の2つの画像は、第1の画像と平行に上下に表示される。私はモザイク()が4つのブロックを構築すると思う。しかし、私は3つのブロックを必要とし、最初の画像が出てきて、それは最後までサイズが変更され、次の2つのブロックは他の2つの画像が上下に来て最初の画像と平行に表示されます。以下は、私は以下のようにするが、その縦横比を保ったまま画像が欲しいgraphicsmagick node.jsでゆがんだ画像と伸ばした画像を制御する方法

gm() 
     .in('-page', '+0+0') 
     .in('-resize', '50x100!') 
     .in('http://localhost:8080/image1') 
     .in('-page', '+50+0') 
     .in('http://localhost:8080/image2') 
     .in('-page', '+50+50') 
     .in('http://localhost:8080/image3') 
     .mosaic() 
     .write('C:/images/output.jpg', function (err) { 
      if (err) console.log(err); 
     }); 

コードは、黒画像が伸びて見えます、私はそれが引き伸ばされたくない、と黒のイメージが終わり

まで全体の左側の領域をカバーする必要があります

enter image description here

削除した場合画像はその後、私は上記のように画像をしたい、のように見えるが

私は nodeを使用していないが、私はあなたがこの適応することができるようになると思い

enter image description here

+0

アスペクト比を保持したい場合は、 '!'を削除してください。伸縮が許されるなら '!'を含めます。 –

+0

@ MarkSetchell、ありがとうございます。私がそれを取り除くならば、私はアスペクト比を維持することで終わるまでイメージの長さを増やす必要があります。どうすればこれを達成できますか? –

+0

領域を埋めるためにサイズ変更の後に '-extent MxN'を追加します。' -extent'を追加する前に '-gravity center'を設定することもできます。ダイアグラムは役に立ちます;-) –

答えて

0

伸びない:私たちの三つの画像を作る

を:今

convert -size 50x50 -background black -fill white -gravity center -pointsize 36 label:"1" image1.jpg 
convert -size 50x50 -background red -fill white -gravity center -pointsize 36 label:"2" image3.jpg 
convert -size 50x50 -background red -fill white -gravity center -pointsize 36 label:"3" image3.jpg 

サイズを変更し、アレンジ:

convert image1.jpg -resize x100 -gravity center -extent 50x100 \(image2.jpg image3.jpg -append \) +append result.png 

enter image description here

本質的に、私は-resize x100と背の高いimage1 100ピクセルを作っていますし、次いで-gravity center -extent 50x100と中盤中央の50ピクセル幅のバンドを抽出します。次に、括弧内に「オンサイド」をロードしています。image2image3をロードし、もう1つを-appendで置きます。その画像のペアは、元の画像の右側に+appendで追加され、結果はresult.pngに書き出されます。

+0

マーク、3枚の画像を作成してからサイズを変更して配置することは重要ですか? –

+0

全くありません!私はあなたにそれをする方法を示すためにいくつかの画像が必要でした。私はあなたのものを持っていません。 –

関連する問題