วิธีสร้างภาพขนาดย่อแบบสี่เหลี่ยม / ครอบตัดโดยใช้ ImageMagick การปลูกพืชเช่นด้านล่าง
วิธีสร้างภาพขนาดย่อแบบสี่เหลี่ยม / ครอบตัดโดยใช้ ImageMagick การปลูกพืชเช่นด้านล่าง
คำตอบ:
สิ่งนี้อธิบายไว้ในเอกสารทางการของ ImageMagick ภายใต้หัวข้อ“ ตัดภาพขนาดย่อให้พอดี” :
อีกทางเลือกหนึ่งคือแทนที่จะตัดภาพให้พอดีกับขนาดภาพขนาดย่อเฉพาะที่เราต้องการแทนที่จะตัดส่วนต่าง ๆ ของภาพที่ไม่พอดีกับขนาดภาพสุดท้ายออก
แน่นอนว่าสิ่งนี้หมายความว่าคุณสูญเสียบางส่วนของภาพต้นฉบับโดยเฉพาะอย่างยิ่งที่ขอบของภาพ แต่ผลลัพธ์คือภาพขนาดย่อที่ขยายใหญ่ขึ้นของส่วนตรงกลางของภาพ โดยทั่วไปจะเป็นเรื่องหลักของภาพ (แต่ไม่เสมอไป) ดังนั้นจึงเป็นวิธีการสร้างภาพขนาดย่อ
ในฐานะของ IM v6.3.8-3 การตั้งค่าสถานะตัวเลือกการปรับขนาดพิเศษ '^' ถูกเพิ่มเพื่อให้ง่ายขึ้น เราเพิ่งปรับขนาดโดยใช้ธงนี้แล้วครอบส่วนต่าง ๆ ของภาพที่ล้นขนาดที่ต้องการ
และในบริบทของคำสั่งตัวอย่าง:
convert -define jpeg:size=200x200 hatching_orig.jpg -thumbnail 100x100^ \
-gravity center -extent 100x100 cut_to_fit.gif
อิกนาชิโอเชื่อมโยงกับเอกสารที่ถูกต้อง แต่ฉันจะวางเอกสารไว้ที่นี่เพื่อความสะดวก:
convert -define jpeg:size=200x200 original.jpeg -thumbnail 100x100^ -gravity center -extent 100x100 thumbnail.jpeg
ในทำนองเดียวกันต่อไปนี้สำหรับ GraphicsMagick:
gm convert -size 200x200 original.jpeg -thumbnail 100x100^ -gravity center -extent 100x100 +profile "*" thumbnail.jpeg
คำอธิบาย:
-size 200x200
บอกตัวถอดรหัส jpeg เราเพียงต้องการความละเอียดนี้เพื่อให้สามารถบันทึกหน่วยความจำและอ่านภาพต้นฉบับได้เร็วขึ้น-thumbnail 100x100^
ปรับขนาดอย่างรวดเร็วทำให้ด้านที่สั้นที่สุด 100- gravity center
ศูนย์ปฏิบัติการต่อไป-extent 100x100
นำภาพไปใช้กับผ้าใบขนาด 100x100+profile "*"
อย่าบันทึก metainfo ใด ๆ ลงใน jpeg (ทำให้รูปภาพเล็กลง)นั่นเป็นวิธีที่ง่ายกว่าในการทำ:
คำสั่งต่อไปนี้ปรับขนาดด้านที่เล็กลงเป็น 100 พิกเซลและครอบตัดสี่เหลี่ยมจัตุรัสขนาด 100x100 คุณสามารถเพิ่ม-strip
คำสั่งเพื่อลดขนาดไฟล์
convert original.jpg -resize "100^>" -gravity center \
-crop 100x100+0+0 -strip thumbnail.jpg
ไม่เหมือนกับการพยายามบันทึกหน่วยความจำ แต่ทำในสิ่งที่คุณต้องการและไม่มากไปกว่านั้น นอกจากนี้มันจะไม่ทำให้รูปภาพหรู
ฉันใช้ graphicsmagick เพื่อสร้างภาพขนาดย่อที่แม่นยำ แต่ฉันขยายภาพด้วยกระดานหมากรุกแทนที่จะตัดส่วนที่ยื่นออกมา
gm convert -limit Threads 1 -size 320x180 pattern:checkerboard -background transparent -gravity center -resize 320x180 -extent 320x180 original.jpg -flatten -resize 112x65! -interlace Line 1 thumb_112x65.jpg
gm convert
// Single threaded seems faster on smaller files
-limit Threads 1
// Generate a checkerboard of size 320x180.
// Sets the relative size of the checkerboard squares,
// also sets the desired aspect ratio. In my case (16:9)
-size 320x180 pattern:checkerboard
// Resize the input image and center it on a transparent layer.
-background transparent -gravity center -resize 320x180 -extent 320x180 orig.jpg
// Merge the layers
-flatten
// Resize the output to the desired
// The ! causes the aspect ratio to be ignored, fixing any rounding errors.
// (Specify a size with the same aspect ratio as the checkerboard.)
-resize 112x65!
// Use Progressive JPEG Encoding
-interlace Line
// Output Image
thumb_112x65.jpg
ฉันคิดว่าคุณกำลังมองหาสิ่งที่ชอบ:
convert -crop 100x100+50+50 input_image.jpg output_image.jpg
ที่100x100
เป็นขนาดของรูปสี่เหลี่ยมผืนผ้าขั้นสุดท้ายและชดเชย50x50
convert -thumbnail 100x100+50+50 input_image.jpg output_image.jpg
สำหรับข้อมูลเพิ่มเติมตรวจสอบการตอบสนอง Igancio Vazquez สำหรับตัวอย่างหรือตรวจสอบเอกสาร
คำสั่งนี้ครอบตัดเป็นสี่เหลี่ยมจัตุรัสแล้วปรับขนาดเป็น 150x150
convert 824-full.jpg -set option:size '%[fx:min(w,h)]x%[fx:min(w,h)]' xc:none +swap -gravity center -composite -resize 150x150 temp.jpg
ตัวเลือกเพิ่มเติมมีอยู่ที่นี่: http://www.imagemagick.org/Usage/thumbnails/#square