ตัวแปลง Base64 เป็น GIF

วาง Base64 ที่มี GIF อยู่แล้วบันทึกเป็นไฟล์ .gif โดยทุกเฟรมยังอยู่ครบ หรือแปลงภาพนิ่งเป็น GIF ด้วยจานสี 256 สีที่สร้างจากสีของภาพนั้นเอง

ทำงานภายในเบราว์เซอร์ของคุณทั้งหมด ไม่มีการอัปโหลดข้อมูลใด ๆ

วิธีใช้งาน

  1. วางสตริง Base64 หรือ URI แบบ data:image/gif;base64
  2. ตรวจดูภาพตัวอย่าง รวมถึงรูปแบบที่ตรวจพบ ขนาดภาพ และขนาดไฟล์
  3. สำหรับ GIF แบบเคลื่อนไหว ให้ตั้ง “ดาวน์โหลดเป็น” เป็น “ต้นฉบับ” เพื่อเก็บทุกเฟรมไว้ สำหรับภาพนิ่ง ให้คง GIF ไว้เพื่อแปลง
  4. ดาวน์โหลดไฟล์ .gif

ข้อมูล GIF ในรูป Base64

ไฟล์ GIF ขึ้นต้นด้วยข้อความ GIF89a หรือ GIF87a ซึ่งเป็นเวอร์ชันที่เก่ากว่า เมื่อเป็น Base64 จะกลายเป็น R0lGODlh และ R0lGODdh อักขระหกตัวแรก R0lGOD จึงเป็นสัญญาณที่เชื่อถือได้ Base64 GIF พบได้ในไอคอนหมุนแสดงการโหลดที่ฝังไว้ใน CSS พิกเซลติดตามแบบโปร่งใสขนาดจิ๋วในอีเมลและระบบวิเคราะห์เว็บ และภาพเคลื่อนไหวแสดงอารมณ์ที่เก็บไว้ในฐานข้อมูลของแชตหรือฟอรัม GIF เป็นที่นิยมสำหรับรูปภาพอินไลน์ขนาดจิ๋ว เพราะ GIF โปร่งใสขนาด 1 × 1 เป็นหนึ่งในไฟล์รูปภาพที่ถูกต้องซึ่งเล็กที่สุด โดยมีขนาดเพียงไม่กี่สิบไบต์

การคงภาพเคลื่อนไหวไว้

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

ข้อจำกัดนี้ก็มีประโยชน์เช่นกัน หากต้องการดึงเฟรมแรกของภาพเคลื่อนไหวออกมาเป็นภาพนิ่ง ให้วาง GIF แล้วดาวน์โหลดเป็น PNG หรือ JPG

ตัวแปลง GIF จัดการสีและความโปร่งใสอย่างไร

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

เมื่อความแม่นยำของสีหรือความโปร่งใสแบบนุ่มนวลสำคัญกว่าความเข้ากันได้ของ GIF PNG หรือ WebP เป็นปลายทางที่ดีกว่า

บนบรรทัดคำสั่ง การถอดรหัสทำได้ในขั้นตอนเดียว: base64 --decode spinner.txt > spinner.gif

คำถามที่พบบ่อย

ทำไม GIF ของฉันจึงหยุดเคลื่อนไหวหลังการแปลง

เอาต์พุตที่แปลงแล้วมีเพียงเฟรมแรก ให้เลือก “ต้นฉบับ” ใน “ดาวน์โหลดเป็น” เพื่อบันทึก GIF แบบเคลื่อนไหวตรงตามที่ถูกเข้ารหัสไว้

ทำไม GIF ที่แปลงแล้วจึงดูเป็นแถบสีหรือมีเม็ดหยาบ

GIF เก็บได้เพียง 256 สี รูปภาพที่มีเฉดสีจำนวนมาก เช่น ภาพถ่าย จึงถูกลดเหลือสีที่ใกล้เคียงที่สุดในจานสี ใช้ PNG หรือ WebP หากต้องการช่วงสีครบถ้วน

พิกเซลกึ่งโปร่งใสจะเป็นอย่างไร

ความโปร่งใสของ GIF มีเพียงเปิดหรือปิด แต่ละพิกเซลจะกลายเป็นโปร่งใสทั้งหมดหรือทึบทั้งหมด ซึ่งอาจทำให้เกิดเส้นขอบหยักรอบขอบที่นุ่มนวล

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