ฉันสามารถมี GIF แบบเคลื่อนไหวที่มีมากกว่า 256 สีต่อเฟรมหรือไม่


31

ฉันสามารถมี GIF แบบเคลื่อนไหวที่มีมากกว่า 256 สีต่อเฟรมหรือไม่ ฉันต้องการทำ GIF แบบเคลื่อนไหว แต่พาเลทสีที่ จำกัด ทำให้มันดูเป็นขยะ

คำตอบ:


42

ใช่คุณสามารถทำได้โดยมีข้อ จำกัด บางประการ

รุ้งจากกล่อง

GIF รองรับจานสีต่อเฟรม (ท้องถิ่น) และมีวิธีการกำจัดเฟรม "ตามสภาพ" ที่อนุญาตให้รวมหลายเฟรมเข้าด้วยกัน

ฉันเขียน [ตัวเข้ารหัส GIF " gifski " โดยใช้เทคนิคนี้] มันสร้างภาพเคลื่อนไหวด้วยสีประมาณ 1,000-3,000 ต่อเฟรม

สิ่งที่จับได้คือคุณสามารถใช้ประโยชน์จากสิ่งนี้ได้ก็ต่อเมื่อไม่ใช่จำนวนพิกเซลทั้งหมดของภาพที่เปลี่ยนไประหว่างเฟรม ดังนั้นหากคุณมีบางสิ่งบางอย่างที่เคลื่อนไหวอยู่ด้านหน้าของพื้นหลังภาพนิ่งคุณสามารถมีภาพเคลื่อนไหวมากกว่า 256 สี - วัตถุที่เคลื่อนไหวจะถูก จำกัด ที่ 256 สี แต่พื้นหลังอาจประกอบด้วยหลายเฟรมที่มีจานสีต่างกัน ด้วยความคิดที่ชาญฉลาดคุณสามารถนำพิกเซลของวัตถุที่เคลื่อนไหวกลับมาใช้ใหม่ได้


คุณหมายถึงว่าภาพเคลื่อนไหวเท่านั้นที่สามารถมีได้มากกว่า 256 สี? เป็นไปได้ไหมที่เราจะแฮ็กมันในรูปแบบที่เราสามารถแสดงภาพนิ่งที่มีมากกว่า 256 สี?
Pacerier

4
@Pacerier ใช้งานได้กับภาพเคลื่อนไหวเท่านั้น ในทางทฤษฎีมันจะเป็นไปได้สำหรับ GIF แบบคงที่ แต่เนื่องจากเบราว์เซอร์ดั้งเดิม / ข้อบกพร่องตีความ0เฟรมล่าช้าเป็น ~ 1/16 ของวินาทีดังนั้นที่ดีที่สุดคุณสามารถมีภาพเคลื่อนไหวที่สร้างภาพคงที่ สำหรับภาพนิ่งคุณจะดีกว่าด้วย PNG / JPG ต่อไป
Kornel

3
จ้ะ gif ดูเหมือนจะไม่ได้มีข้อได้เปรียบเพียงครั้งเดียวในโดเมนของภาพนิ่ง
Pacerier

2
@ GeorgeEdison คุณทำได้ แต่ GIF มีการบีบอัดที่อ่อนแอมากดังนั้นมันจะแย่กว่าในทุก ๆ ทางมากกว่าแค่ใช้ PNG หรืออย่างอื่น
Kornel

1
@ g491 gifsicle สามารถสร้างไฟล์แบบนั้นได้ (ใช้ gif หลายตัวพร้อมความโปร่งใสและการกำจัด = Keep mode)
Kornel

5

ไม่คุณไม่สามารถ; รูปแบบ GIF อนุญาตให้ 256 สีเท่านั้น


3
ต่อเฟรม ก่อนที่คุณจะพูดถึงปัญหาการปฏิบัติจริงฉันค่อนข้างมั่นใจว่า Bing กำลังใช้ GIF สีจริงเหล่านี้ในตอนนี้
John Chadwick

1
ฉันเห็น 32697 สีใน gif นี้: phil.ipal.org/tc.htmlและgoo.gl/DBdg1o
Pacerier

3

อย่างน้อยในทางทฤษฎีคุณสามารถซ้อน GIF และทำให้สีพิเศษโปร่งใส

  1. ก่อนอื่นคุณคัดลอกแต่ละเฟรมเพื่อให้คุณมีสองเฟรม
  2. จากนั้นเลือกพื้นที่ตามสีโดยมีความไวต่ำพอที่จะเลือกได้ครึ่งหนึ่งของภาพ
  3. จากนั้นเพียงลบทุกอย่างที่อยู่ในการเลือก
  4. ตอนนี้กลับรายการที่เลือก
  5. จากนั้นไปที่เฟรมถัดไปและลบทุกอย่างอีกครั้ง
  6. บันทึกผลลัพธ์สุดท้าย ( raw-ani.gif)
  7. ลบครึ่งเฟรม
  8. บันทึกด้วยชื่อไฟล์ใหม่ ( ani1.gif)
  9. โหลดเวอร์ชันที่บันทึกไว้ก่อนหน้า
  10. ลบอีกครึ่งหนึ่งของเฟรม
  11. บันทึกอีกครั้ง ( ani2.gif)

สับ HTML บางคนที่มีตำแหน่งแน่นอนและวางอยู่ด้านบนของani2.gifani1.gif

ทำซ้ำขั้นตอนนี้เพื่อสร้างสี่แปดหรือ 16 เลเยอร์หรือสิ่งที่คุณต้องการ

คุณสามารถเร่งraw-ani.gifผลลัพธ์และมีสิ่งที่ Kornel อธิบาย


2

ไม่มีไฟล์ gif ไม่ จำกัด เพียง 256 สี


4
ในขณะที่การเรียงลำดับของจริงแฮ็ก GIF สีจริงมีข้อ จำกัด ที่สำคัญบางอย่าง: มันไม่ทำงานในโปรแกรมดูภาพที่ไม่สนับสนุนภาพเคลื่อนไหว (หรือในเบราว์เซอร์ที่ผู้ใช้ปิดการใช้งานภาพเคลื่อนไหว GIF) แต่อาจช้าในบาง เบราว์เซอร์ที่กำหนดความล่าช้าเฟรมขั้นต่ำและมีแนวโน้มที่จะสร้างไฟล์ขนาดใหญ่ที่บีบอัดได้ไม่ดี มันเรียบร้อย แต่ไม่ค่อยมีประโยชน์ในโลกแห่งความเป็นจริง เพียงใช้ PNG หากคุณต้องการมากกว่า 256 สี (อนิจจา, การสนับสนุนเบราว์เซอร์ MNG / APNG นั้นแน่นอนจริงๆ)
Ilmari Karonen

ในขณะที่สิ่งนี้อาจตอบคำถามในทางทฤษฎีมันก็ควรที่จะรวมส่วนสำคัญของคำตอบที่นี่และให้ลิงค์สำหรับการอ้างอิง
มาร์คเฮนเดอร์สัน

1

เป็นไปได้ที่จะมี gif สีที่แท้จริงและมีบทความต่าง ๆ ทางออนไลน์ แต่พวกเขาไม่ได้ใช้งานได้จริง

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