ImageMagick: วิธี จำกัด สีและ dither


0

ฉันกำลังพยายามสร้างภาพเคลื่อนไหว GIF จากวิดีโอหลายเฟรม ฉันต้องการให้ผลลัพธ์มีขนาดเล็กโดย จำกัด สี แต่ไม่มีแถบสี

ดังนั้นในความคิดของฉันฉันคิดว่าการอ่านไฟล์จากนั้นลดสีจากนั้นก็ทำให้เปียก หลังจากอ่านทฤษฎีการดำเนินงานของ ImageMagick มากมายบนเว็บไซต์ของพวกเขานี่คือบรรทัดคำสั่งที่ฉันได้รับ:

convert -size 640x640 -colors 64 *.png -ordered-dither o8x8,8,8,4 +map \
  -layers Optimize output.gif

.pngไฟล์ถูกสร้างขึ้นจากวิดีโอโดยใช้ffmpegเช่นนี้

ffmpeg -i source.mp4 -ss 10:01.123 -to 10:03.321 frames/source_%03d.png

ฉันไม่แน่ใจจริงๆว่าจะใส่-colors 64ประโยคไหน ฉันควรใส่ก่อน*.jpgหรือหลัง? หรือแม้กระทั่งหลัง-ordered-dither o8x8,8,8,4ส่วน?

ขอบคุณสำหรับความช่วยเหลือ ฉันค่อนข้างใหม่สำหรับ ImageMagick ดังนั้นโปรดเป็นคนอ่อนโยน :-)


อัปเดต 1:

ดังนั้นฉันเล่นไปรอบ ๆ และได้ผลลัพธ์ (สำหรับฉัน) ที่ไม่ได้ใช้งานง่ายเหล่านี้:

-delay 12 -colors 128 *.png -resize 640x640 -ordered-dither o8x8,8 -deconstruct +map \
  -layers Optimize output_1.gif
Result: 3.09 MB, Good quality

-delay 12 *.png -colors 128 -resize 640x640 -ordered-dither o8x8,8 -deconstruct +map \
  -layers Optimize output_2.gif
Result: 3.09 MB, Good quality

-delay 12 *.png -resize 640x640 -colors 128 -ordered-dither o8x8,8 -deconstruct +map \
  -layers Optimize output_3.gif
Result: 4.41 MB, Degraded quality

-delay 12 *.png -resize 640x640 -ordered-dither o8x8,8 -colors 128 -deconstruct +map \
  -layers Optimize output_4.gif
Result: 2.77 MB, Good quality

-delay 12 <individual .png followed by -colors 128 each> -resize 640x640 \
  -ordered-dither o8x8,8 -colors 128 -deconstruct +map -layers Optimize output_5.gif
Result: 3.09 MB, Slightly Better quality

กล่าวโดยย่อ: ชุดค่าผสมทั้งหมดให้คุณภาพที่ดีจริง ๆ ยกเว้นชุดค่าผสม # 3 ซึ่งไม่เพียง แต่ให้ผลลัพธ์ที่เสื่อมโทรมอย่างเห็นได้ชัดเท่านั้น

นี่เป็นสิ่งที่ไม่คาดคิดเลยทีเดียว ... คุณคิดอย่างไร: ผลที่ได้อาจแตกต่างกันอย่างนี้?

คำตอบ:


1

ดูคู่มือสำหรับ ImageMagick ที่นี่

กายวิภาคของบรรทัดคำสั่ง

บรรทัดคำสั่ง ImageMagick ประกอบด้วย:

ชื่อไฟล์อินพุตที่ต้องการอย่างน้อยหนึ่งรายการ

ศูนย์การตั้งค่าภาพหนึ่งหรือมากกว่า

ตัวดำเนินการศูนย์หนึ่งหรือมากกว่า

ตัวดำเนินการลำดับภาพศูนย์หนึ่งหรือมากกว่า

ศูนย์หนึ่งหรือมากกว่าหนึ่งภาพสแต็ค

ชื่อไฟล์ภาพเป็นศูนย์หรือหนึ่งไฟล์ (ต้องการโดยการแปลง, คอมโพสิต, การตัดต่อ, เปรียบเทียบ, นำเข้า, คิดในใจ)

คุณสามารถค้นหาคำอธิบายโดยละเอียดของแต่ละส่วนของบรรทัดคำสั่งในส่วนที่ตามมา

ไม่ว่ามันจะมีความสำคัญมากเกินไปฉันไม่รู้ แต่นี่ก็หมายความว่าคุณจะจัดโครงสร้างมันเช่น:

convert  *.png -size 640x640 -colors 64 -ordered-dither o8x8,8,8,4 +map -layers optimize output.gif

ฉันทดสอบคำสั่งนี้แล้วมันใช้งานได้ดีแปลงไฟล์ PNG 4x ขนาด @ 6-7MB แต่ละไฟล์เป็น GIF ขนาด 5.2MB


ใช่มั้ย? ฉันไม่รวม-ใน-layers... ยังมีสิ่งที่เป็นการสะกดคำที่เหมาะสมOptimizeหรือoptimize? หรือไม่สำคัญสำหรับคำหลักนี้โดยเฉพาะ?
pepoluan

อย่างไรก็ตามขอขอบคุณสำหรับการชี้ให้เห็นว่าส่วน "กายวิภาค" กับฉัน! ฉันต้องพลาดหน้านั้นโดยเฉพาะ --__--
pepoluan

1
@epoluan อ๊ะไม่แน่ใจว่าทำไมฉันคิดว่าคุณไม่ได้ต้องคัดลอกและวางมันผิด! ขออภัย! โดยทั่วไปจะเป็นตัวพิมพ์เล็ก แต่ขึ้นอยู่กับข้อกำหนด (แบบเดิม ๆ มันเหมือนกัน แต่การเปรียบเทียบแบบไบนารีจะล้มเหลวดังนั้นให้เป็นแบบเดียวกันถ้าเป็นไปได้)
Jonno
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.