ฉันมีห้าภาพขนาด: 600x30, 600x30, 600x30, 600x30, 810x30 ชื่อของพวกเขาคือ: 0.png, 1.png, 2.png, 3.png, 4.png ตามลำดับ
ฉันจะรวมเข้าด้วยกันในแนวนอนเพื่อสร้างภาพขนาด 3210x30 ด้วย ImageMagick ได้อย่างไร
ฉันมีห้าภาพขนาด: 600x30, 600x30, 600x30, 600x30, 810x30 ชื่อของพวกเขาคือ: 0.png, 1.png, 2.png, 3.png, 4.png ตามลำดับ
ฉันจะรวมเข้าด้วยกันในแนวนอนเพื่อสร้างภาพขนาด 3210x30 ด้วย ImageMagick ได้อย่างไร
คำตอบ:
ImageMagick มาพร้อมกับmontage
ยูทิลิตี้ การตัดต่อจะต่อท้ายรูปภาพแต่ละภาพแบบเคียงข้างกันเพื่อให้คุณปรับระยะห่างระหว่างแต่ละภาพ ( -geometry
) และเค้าโครงทั่วไป ( -tile
)
montage [0-5].png -tile 5x1 -geometry +0+0 out.png
ตัวอย่างอื่น ๆ สามารถพบได้ในหน้าการใช้งานการตัดต่อ
[0-5].png
จะสร้างไฟล์ "0.png, 1.png, 2.png, 3.png, 4.png, 5.png" ออกมาหกไฟล์ แต่คุณtile 5x1
จะใช้เวลาเพียงห้าไฟล์เท่านั้นทำให้คุณมีไฟล์เอาต์พุตสองไฟล์ นี้ก็ควรจะใช้หรือ[0-4].png
-tile 6x1
ImageMagick มีเครื่องมือบรรทัดคำสั่งชื่อ ' แปลง ' เพื่อรวมรูปภาพในแนวนอนหรือเพื่อวัตถุประสงค์อื่น ฉันได้ลองใช้คำสั่งนี้แล้วและทำงานได้อย่างสมบูรณ์แบบกับเคสของคุณ:
ในการรวมรูปภาพในแนวนอน:
convert +append *.png out.png
ในการซ้อนภาพในแนวตั้ง:
convert -append *.png out.png
convert -append %F joined-image.png
เมือง.) ภาพที่เลือกทั้งหมดจะรวมเป็นหนึ่ง png ตามลำดับตัวอักษร
convert *.png +append out.png
ง่ายมากด้วย ImageMagick ( brew install imagemagick
)
convert +append image_1.png image_2.png new_image_conbined.png
หากภาพมีความสูงไม่เท่ากัน
คุณสามารถกำหนดความสูงสำหรับทั้งหมดได้ด้วย-resize
ตัวเลือกเช่นกำหนดความสูง 400 พิกเซล:
convert +append image_1.png image_2.png -resize x400 new_image_conbined.png
ทุกคนที่ใช้MiniMagick
อัญมณีรางรถไฟสามารถใช้เครื่องมือในตัวเพื่อรวมภาพ:
# Replace this with the path to the images you want to combine
images = [
"image1.jpg",
"image2.jpg"
]
processed_image = MiniMagick::Tool::Montage.new do |image|
image.geometry "x700+0+0"
image.tile "#{images.size}x1"
images.each {|i| image << i}
image << "output.jpg"
end
ดูเอกสารสำหรับ#geometry
ตัวเลือกในการจัดการการปรับขนาดและการจัดวาง ตัวอย่างปัจจุบันจะปรับขนาดรูปภาพให้มี700px
ความสูงโดยที่ยังคงอัตราส่วนของรูปภาพไว้ +0+0
จะวางภาพโดยไม่มีช่องว่างระหว่างภาพ