ผู้ชายคนนี้แบ่งปัญหาผ่านข้อมูลจำเพาะ GIF วิธีแก้ปัญหาของเขาคือtransparent.gif
37 ไบต์:
data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==
เขายิ่งเล็กลงด้วยการลบความโปร่งแสงก่อนจากนั้นตารางสี ...
ข้อกำหนด GIF89a
ส่วนหัว (6 ไบต์)
ประกอบด้วยไบต์“ GIF” และหมายเลขเวอร์ชันซึ่งโดยปกติ89a
แล้ว
ตัวบอกหน้าจอลอจิคัล (7 ไบต์)
โดยไม่ต้องลงรายละเอียดมากเกินไปส่วนนี้ของไฟล์จะระบุสิ่งต่อไปนี้:
- ไฟล์มีขนาด 1x1 พิกเซล
- มีตารางสีทั่วโลก
- ตารางสีส่วนกลางมี 2 สีสีที่สองควรใช้เป็นสีพื้นหลัง
ตารางสีส่วนกลาง (6 ไบต์)
ประกอบด้วย 3 ไบต์ต่อสีหนึ่งไบต์สำหรับสีแดงเขียวและน้ำเงินตามลำดับ ในไฟล์ของเราสีแรกคือสีขาวและสีที่สองคือสีดำ
ส่วนขยายการควบคุมกราฟิก (8 ไบต์)
ใช้เพื่อระบุว่าสีที่สองในตารางสีควรถือว่าโปร่งใส (สามารถใช้สำหรับพารามิเตอร์ภาพเคลื่อนไหวได้เช่นกัน แต่ไม่ได้อยู่ในไฟล์นี้)
Image Descriptor (10 ไบต์)
จริงๆแล้วไฟล์ GIF สามารถมี "ภาพ" หลาย ๆ ภาพอยู่ภายในซึ่งช่วยให้คุณไม่ต้องระบุข้อมูลภาพสำหรับส่วนต่างๆของภาพที่มีสีเดียวกับสีพื้นหลัง แต่ละบล็อกรูปภาพมีตำแหน่งและขนาดอยู่ในขนาดภาพโดยรวม ในไฟล์ด้านบนตำแหน่งคือ 0,0 และขนาดคือ 1x1
ข้อมูลภาพ (5 ไบต์)
บล็อกข้อมูลรูปภาพที่เข้ารหัส LZWหนึ่งบล็อก ใช้เวลา 5 ไบต์ในการแทนพิกเซลเดียวที่มีอยู่ในภาพ อัลกอริธึมการบีบอัดไม่ได้ออกแบบมาเพื่อบีบอัดไบต์เดียวเป็นอย่างดี
ตัวอย่าง GIF (1 ไบต์)
ไบต์เดียวที่มีค่าฐานสิบหก3B
( ;
ใน ASCII) ระบุจุดสิ้นสุดของ GIF
จากโครงสร้างที่จำเป็นสำหรับ GIF แบบโปร่งใสปรากฎว่า 43 ไบต์นั้นค่อนข้างเล็กที่สุดเท่าที่คุณจะทำได้
แต่ฉันสามารถหาเคล็ดลับอย่างหนึ่งเพื่อทำให้มันเล็กลงได้ มีการระบุไว้ในมาตรฐานว่าเป็นทางเลือกที่จะมีตารางสีส่วนกลาง แน่นอนว่ามันไม่ได้กำหนดว่าจะเกิดอะไรขึ้นเมื่อคุณสร้าง GIF โดยไม่มีตารางสีเลย
อย่างไรก็ตามเมื่อคุณกำหนดดัชนีตารางสีเป็นแบบโปร่งใส แต่ตัวถอดรหัส GIF ดูเหมือนจะไม่สนใจว่าไม่มีตารางสีจริงๆ
ดังนั้นฉันจึงเปลี่ยนตัวอธิบายหน้าจอแบบลอจิคัลเพื่อระบุว่าไม่มีตารางสีส่วนกลางและลบตารางออกเองประหยัดได้ทั้งหมดหกไบต์ทำให้ขนาดไฟล์เหลือเพียง 37 ไบต์
สิ่งที่น่าสนใจก็คือ Wordpress ให้รายการข้อความแสดงข้อผิดพลาดที่น่ารักของ GD ที่บ่นว่านี่ไม่ใช่ไฟล์ GIF ที่ถูกต้องแม้ว่า Firefox และ GIMP จะเปิดและแสดง (มัน "แสดง" เมื่อโปร่งใสหรือไม่) ไฟล์ ดี.
เพื่อให้มีขนาดเล็กลงฉันมองไปที่บล็อก "ทางเลือก" ที่ใหญ่ที่สุดที่เหลืออยู่ในรูปภาพนั่นคือส่วนขยายการควบคุมกราฟิก หากคุณไม่ต้องการความโปร่งใสบล็อกนี้ก็ไม่จำเป็นอีกต่อไปและนั่นคืออีก 8 ไบต์ที่คุณสามารถนำออกไปได้
ที่มา: GIF ที่เล็กที่สุดที่เคยมีมา