ความแตกต่างสำหรับตัวดำเนินการตัวอย่าง / resample / scale / resize / adaptive-resize / ขนาดย่อใน ImageMagick convert คืออะไร?


87

ฉันพบหลายวิธีในการเปลี่ยนความละเอียดของภาพโดยใช้convert:

-sample
-resample
-scale
-resize
-adaptive-resize
-thumbnail

อะไรคือความแตกต่างของสิ่งเหล่านี้?

หากฉันต้องการสร้างภาพขนาดย่อขนาดต่างๆที่มีอัตราส่วนภาพคงที่ (จำเป็นต้องครอบตัด) - ทางเลือกที่ดีที่สุดของฉันคืออะไร?



สำหรับข้อมูลเพิ่มเติมโปรดดูimagemagick.org/Usage/filterและimagemagick.org/Usage/filter/nicolas
fmw42

คำตอบ:


140

ปรับขนาด

-resize 400x300+20+30(เช่น-scaleและ-sampleตัวอย่างด้านล่าง) แปลงอินพุตเป็นภาพเอาต์พุตซึ่งมีขนาดพิกเซลเป็น400x300. นอกจากนี้ยังเลื่อนเอาต์พุต 20 พิกเซลไปทางขวาและ 30 พิกเซลไปที่ด้านล่าง นอกจากนี้ยังมีข้อแตกต่างอีกเล็กน้อยใน-scale:

  • -resizeรองรับการตั้งค่าเพิ่มเติมของ-filter(ซึ่งควรเกิดขึ้นในบรรทัดคำสั่งก่อนใช้งาน-resize!)

  • -filter กำหนดอัลกอริทึมที่แน่นอนที่จะใช้สำหรับสีของพิกเซลที่เพิ่มในกรณีของการขยายหรือสำหรับสีที่จะใช้สำหรับพิกเซลที่เหลือเมื่อเพื่อนบ้านบางส่วนถูกลบออกในกรณีที่มีการลดขนาด

  • convert -list filterสำหรับรายชื่อของฟิลเตอร์ได้รับการสนับสนุนให้เรียกใช้เพียง

  • -filter point -resize 400x300สร้างผลลัพธ์เดียวกัน-sample 400x300ทุกประการ แต่มันยังทำงานช้ากว่าเล็กน้อย

  • หากไม่ได้ตั้งค่าไว้ข้าง (ก่อนหน้า) -resizeการแปลงจะเงียบโดยปริยาย-filter Lanczosซึ่งช้ากว่า แต่จะสร้างคุณภาพที่ดีกว่ามาก (เพราะคำนึงถึงสีของพิกเซลโดยรอบทั้งหมดสำหรับพิกเซลที่เพิ่มเข้ามาใหม่) มากกว่า-filter pointสร้าง (ซึ่งใช้ใกล้กฎเพื่อนบ้านเพื่อกำหนดสีของพิกเซลที่เพิ่มใหม่)

ตัวอย่าง

-sample 400x300แปลงภาพอินพุตเป็นภาพเอาต์พุตซึ่งมีขนาดพิกเซลเป็น400x300. อย่างไรก็ตามมีข้อแตกต่างที่สำคัญบางประการ-resizeดังนี้

  • -sampleไม่รองรับการตั้งค่าเพิ่มเติมของ-filter; หากตั้งค่าไว้ต่อไปก็-filterจะถูกละเว้น

  • เมื่อขยาย (เนื่องจากขนาดภาพที่ป้อนอาจเล็กกว่า400x300) พิกเซลจะถูกจำลองแบบในบล็อก

  • เมื่อทำการย่อขนาด (เนื่องจากขนาดภาพที่ป้อนอาจใหญ่กว่า400x300) พิกเซลจะถูกสุ่มตัวอย่างย่อยด้วยอัลกอริทึมที่เรียบง่าย: บางแถวและคอลัมน์จะถูกข้ามไป

  • เรขาคณิตอาร์กิวเมนต์-sampleไม่สนับสนุนใด ๆชดเชยส่วน (เหมือน-resizeซึ่งประการชดเชยคำสั่งสำหรับการส่งออก)

  • ผลลัพธ์จะไม่มีสี (ต่างกัน) มากกว่าภาพอินพุตที่มี แม้ว่าอาจมีสีน้อยกว่า

  • ดังนั้นจึง-sampleเร็วมาก (เร็วกว่า-resize) - แต่คุณภาพของผลลัพธ์ (โดยปกติ) จะแย่ลง: คุณสามารถรับเอฟเฟกต์การปิดกั้นและนามแฝงในผลลัพธ์ที่ได้อย่างง่ายดาย

  • คุณสมบัติที่สำคัญอย่างหนึ่ง-sampleคือภาพใหม่จะไม่มีสีใหม่ ๆ แม้ว่าสีบางส่วนจากภาพต้นฉบับอาจหายไป

resample

-resampleใช้เป็นพารามิเตอร์ตามXxY ความละเอียดที่ต้องการไม่ใช่เรขาคณิตXxYพิกเซลของภาพเป้าหมาย จุดประสงค์ของโอเปอเรเตอร์นี้คือเพื่อรักษาขนาดที่แสดงผลของรูปภาพ: สมมติว่ารูปภาพของคุณมีขนาด 4 นิ้วคูณ 3 นิ้วบนอุปกรณ์ที่แสดงผลที่ 300 DPI จากนั้นขอหรือจะปรับขนาดภาพเพื่อให้มีขนาด (อีกครั้ง) 4 นิ้วคูณ 3 นิ้วบนอุปกรณ์ 72 DPI-resample 72-resample 72x72

  • การดำเนินการนี้ใช้ได้เฉพาะกับภาพที่มีความละเอียดที่ต้องการเก็บไว้ในข้อมูลเมตาเท่านั้น (ไม่ใช่ทุกรูปแบบภาพที่รองรับแนวคิดของความละเอียดของภาพเช่น JPEG, PNG และ TIFF)

  • หากอิมเมจต้นฉบับอยู่ในรูปแบบที่การสนับสนุนภายในสำหรับความละเอียดของภาพขาดหายไปความละเอียดดั้งเดิม (สันนิษฐาน) ของรูปภาพจะต้องถูกระบุผ่านทาง-densityบรรทัดคำสั่งก่อนที่จะระบุ-resampleความละเอียด

มาตราส่วน

-scale 400x300ก่อให้เกิดผลเทียบเท่า ( แต่จะเร็วเพราะมันหลีกเลี่ยงการประมวลผลทั้งหมดกรอง) -filter box -resize 400x300เช่นเดียวกับการใช้ นอกจากนี้ยังละเว้น-filterการตั้งค่าปัจจุบันโดยสิ้นเชิง

  • เมื่อย่อขนาดภาพจะเปลี่ยนขนาดภาพเพียงแค่เปลี่ยนสีพิกเซลโดยการหาค่าเฉลี่ยของสีพิกเซลที่ป้อนเข้าด้วยกัน

  • เมื่อขยายภาพจะเป็นการจำลองพิกเซลอินพุตตามลำดับสำหรับพิกเซลเพิ่มเติมที่ต้องการ

ปรับขนาดได้

-adaptive-resize 400x300ไม่สนับสนุน (หรือละเว้นหากตั้งค่าไว้) ส่วนออฟเซ็ตของพารามิเตอร์เรขาคณิตและยังละเว้นการ-gravityตั้งค่าหากมี

ภาพขนาดย่อ

-thumbnailใช้งานได้เหมือน-resizeกันโดยมีความแตกต่างเล็กน้อย:

  • เหมาะสำหรับความเร็ว

  • นอกจากนี้ยังลบโปรไฟล์สีที่ฝังไว้เพื่อลดขนาดไฟล์ของภาพขนาดย่อ


คำตอบต่อไปนี้แสดงตัวอย่างบางส่วนของ-resizeคำสั่ง ภาพประกอบแต่ละภาพแสดงผลลัพธ์ที่แตกต่างกันขึ้นอยู่กับ 'รายละเอียดโดยละเอียด' ของวิธีการปรับขนาดที่แน่นอน:


4
ขอบคุณที่มีความหมายมากกว่าเอกสาร ImageMagick
Paul Brannan

หากคุณมีภาพตัวอย่างสิ่งนี้จะสมบูรณ์แบบยิ่งขึ้น :-)
Ciro Santilli 郝海东冠状病六四事件法轮功

@KurtPfeifle: ก่อนอื่นขอขอบคุณสำหรับคำตอบที่ให้ข้อมูลอย่างสูง ได้โปรดช่วยแนะนำหนังสือดีๆหรือเอกสาร pdf สำหรับ Imagemagick วิธีที่ดีที่สุดที่ฉันมีในตอนนี้คือการขูดหน้าทั้งหมดของ Imagemagick เพื่อลดเวลาในการอ่าน แต่ข้อมูลจำนวนมาก (ซึ่งในความคิดของฉันอธิบายไม่ได้เพียงพอเสมอไป) ความช่วยเหลือใด ๆ ที่ได้รับการชื่นชมอย่างสูง
saurabheights

7

ดังคำกล่าวของ Ciro Santilli 新疆改造中心六四事件法轮功:

หากคุณมีภาพตัวอย่างสิ่งนี้จะสมบูรณ์แบบยิ่งขึ้น :-)

- ปรับขนาด

Google Play ด้วย -resize (8.0 กิโลไบต์)

-ตัวอย่าง

-ตัวอย่าง (2.2 กิโลไบต์)

- สเกล

- สเกล (7.0 กิโลไบต์)

-adaptive- ปรับขนาด

ใส่คำอธิบายภาพที่นี่ (4.3 กิโลไบต์)

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.