รูปภาพเป็น Base64
รูปภาพเป็น Base64 เป็นเครื่องมือฟรีที่แปลงไฟล์รูปภาพเป็นข้อความที่เข้ารหัสแบบ Base64
Base64 คืออะไร และใช้ทำอะไร?
Base64 เป็นการเข้ารหัสข้อมูลไบนารีของรูปภาพที่อัปโหลดให้อยู่ในรูปแบบข้อความ เพื่อให้ส่งผ่านระบบที่ออกแบบมาสำหรับข้อความเป็นหลักได้ โดยข้อมูลต้นฉบับทุก 3 ไบต์จะถูกแทนด้วยอักขระที่พิมพ์ได้ 4 ตัวจากชุดอักขระที่กำหนดไว้
วิธีนี้มีประโยชน์เมื่อรูปแบบปลายทางไม่รองรับไฟล์ไบนารีแยกต่างหาก คุณสามารถใส่รูปภาพไว้ใน data URL, พร็อพเพอร์ตี JSON หรือส่วน MIME ของอีเมลได้โดยไม่ต้องแนบไบต์ต้นฉบับในรูปแบบไบนารีตามปกติ สตริง Base64 ที่ได้เป็นข้อมูลที่ผ่านการเข้ารหัสรูปแบบ ไม่ใช่การเข้ารหัสเพื่อความปลอดภัย ใครก็ตามที่ได้สตริงนี้ไปสามารถถอดรหัสได้ จึงไม่ช่วยปกปิดข้อมูลหรือควบคุมการเข้าถึง
ตัวอย่างสั้น ๆ ที่ใช้ไบต์ของข้อความจะแสดงวิธีทำงานได้ชัดเจน
- ข้อความที่ป้อนคือ <svg></svg>
- ผลลัพธ์ Base64 คือ PHN2Zz48L3N2Zz4=
รูปภาพส่วนใหญ่ประกอบด้วยไบต์ไบนารี ไม่ใช่มาร์กอัปที่อ่านได้ ข้อมูลที่ป้อนจึงไม่เหมือนตัวอย่างข้อความนี้ แต่หลักการเดียวกันใช้ได้กับ PNG, JPEG, GIF, WebP และรูปแบบรูปภาพอื่น ๆ
แปลงรูปภาพเป็น Base64 อย่างไร?
เลือกไฟล์รูปภาพเป็นข้อมูลเข้า เริ่มแปลง แล้วคัดลอกค่าที่แสดงในช่อง เข้ารหัส Base64 แล้ว เครื่องมือจะใช้ฟังก์ชัน base64_encode ของ PHP กับข้อมูลรูปภาพ
- เลือกรูปภาพที่ต้องการแปลงให้อยู่ในรูปแบบข้อความ
- รอให้หน้าเว็บประมวลผลไฟล์และแสดงค่าที่เข้ารหัสแล้ว
- คัดลอกสตริงทั้งหมด รวมถึงเครื่องหมายเท่ากับที่อยู่ท้ายสตริง
- เติมไวยากรณ์ที่จำเป็นรอบสตริง หากระบบปลายทางต้องการ data URL, ค่า JSON หรือคอนเทนเนอร์รูปแบบอื่น
การประมวลผลเกิดขึ้นบนเซิร์ฟเวอร์ รูปภาพจะถูกส่งไปยังเซิร์ฟเวอร์ผ่าน HTTPS และจะไม่ถูกจัดเก็บ เนื่องจากเป็นการประมวลผลฝั่งเซิร์ฟเวอร์ อย่าคิดว่าไฟล์จะอยู่เฉพาะในอุปกรณ์ของคุณระหว่างการแปลง
ควรนำสตริง Base64 ที่ได้ไปใช้อย่างไร?
ใช้สตริงเป็น Base64 แบบดิบ หรือใส่ไว้ในไวยากรณ์ที่ระบบปลายทางกำหนด ตัว Base64 เองไม่ได้ระบุรูปแบบรูปภาพ ชื่อไฟล์ ขนาดภาพ หรือวัตถุประสงค์ในการใช้งาน
สำหรับ data URL ใน HTML หรือ CSS ค่าที่เข้ารหัสมักอยู่ต่อจากชนิดสื่อและตัวระบุ Base64 โดย data URL ของ PNG จะเริ่มต้นด้วย data:image/png;base64, แล้วตามด้วยสตริงทันที ส่วน JPEG ใช้ image/jpeg และ SVG มักใช้ image/svg+xml หากเลือกชนิดสื่อผิด ซอฟต์แวร์อาจไม่แสดงรูปภาพแม้ว่าข้อมูลรูปภาพจะถูกต้องก็ตาม
ใน JSON โดยทั่วไป Base64 จะเก็บเป็นสตริงในเครื่องหมายคำพูด และมักมีฟิลด์แยกสำหรับระบุชนิดสื่อ หาก API ขอ Base64 แบบดิบโดยเฉพาะ อย่าเติมคำนำหน้า data URL โปรดอ่านเอกสารของ API ก่อนนำค่าที่เครื่องมือส่งกลับไปใช้ เพราะข้อมูลเข้าสองรูปแบบนี้ใช้แทนกันไม่ได้
ระบบจริงนำ Base64 ไปใช้ที่ไหนบ้าง?
คุณจะพบ Base64 ได้บ่อยเมื่อต้องส่งข้อมูลไบนารีผ่านรูปแบบหรือโปรโตคอลที่ใช้ข้อความ ตัวอย่างทั่วไป ได้แก่
- Data URL: ฝังอยู่ใน HTML, CSS หรือเอกสารที่ระบบสร้างขึ้น
- เพย์โหลด JSON: ส่งไปยัง API ที่รับข้อมูลรูปภาพภายในพร็อพเพอร์ตีข้อความ
- อีเมล: MIME สามารถเข้ารหัสไฟล์แนบและรูปภาพในเนื้อหาเป็น Base64
- สตริงคิวรี: อักขระ Base64 มาตรฐานอาจต้องผ่านการเข้ารหัส URL เพิ่มเติม
- ไฟล์การกำหนดค่า: รวมถึงเอกสาร XML ที่ไม่สามารถใส่ไบต์ไบนารีใด ๆ ได้โดยตรง
ชื่อโดเมนสากลเป็นอีกตัวอย่างของการแปลงข้อมูลให้อยู่ในชุดอักขระที่จำกัด แต่ใช้ Punycode แทน Base64 สำหรับค่าที่ใส่ใน URL คุณอาจต้องใช้ตัวเข้ารหัส URL ด้วย เพราะ Base64 มาตรฐานอาจมีเครื่องหมายบวก เครื่องหมายทับ และเครื่องหมายเท่ากับ
ทำไมถอดรหัส Base64 ไม่สำเร็จ หรือได้ข้อมูลที่อ่านไม่รู้เรื่อง?
การถอดรหัสอาจล้มเหลวเพราะข้อมูลที่ป้อนมีคำนำหน้าติดมาด้วย เสียหาย ถูกตัดไม่ครบ หรือมีรูปแบบ Base64 ไม่ตรงกับที่ตัวถอดรหัสคาดไว้ ส่วนผลลัพธ์ที่อ่านไม่รู้เรื่องมักเกิดจากการถอดรหัสข้อมูลไบนารีของรูปภาพที่ถูกต้อง แล้วนำไปแสดงเป็นข้อความธรรมดาอย่างไม่ถูกต้อง
- มีคำนำหน้าติดมาด้วย: อาจทำให้เกิดข้อผิดพลาดเมื่อตัวถอดรหัสรับเฉพาะ Base64 ให้ลบข้อความอย่าง data:image/png;base64, ก่อนใช้ตัวถอดรหัส Base64 แบบดิบ
- ข้อมูลเสียหายหรือถูกตัดไม่ครบ: อาจถอดรหัสออกมาเป็นรูปภาพที่ไม่สมบูรณ์จนโปรแกรมดูรูปเปิดไม่ได้
- เข้ารหัสซ้ำสองรอบ: หลังถอดรหัสครั้งแรกจะยังได้สตริง Base64 อีกชุด หากต้นทางนำค่าที่เข้ารหัสแล้วไปเข้ารหัสซ้ำ อาจต้องถอดรหัสเป็นครั้งที่สอง
- ใช้ชุดอักขระผิด: อาจเกิดข้อผิดพลาดเมื่อตัวถอดรหัสคาดหวัง Base64 คนละรูปแบบ Base64url ใช้เครื่องหมายยัติภังค์และขีดล่างในตำแหน่งที่ Base64 มาตรฐานใช้เครื่องหมายบวกและเครื่องหมายทับ
- ไม่มีอักขระเติมเต็ม: อาจมีผลต่อตัวถอดรหัสที่ตรวจรูปแบบอย่างเคร่งครัด Base64 มาตรฐานอาจลงท้ายด้วยเครื่องหมายเท่ากับหนึ่งหรือสองตัว แต่บางระบบตั้งใจละเครื่องหมายเหล่านี้ไว้
หากผลลัพธ์ที่ถอดรหัสเป็นข้อมูลไบนารี ให้บันทึกด้วยชนิดรูปภาพที่ถูกต้องแทนการเปิดในโปรแกรมแก้ไขข้อความ คุณสามารถใช้ตัวถอดรหัส Base64 หรือเครื่องมือ Base64 เป็นรูปภาพเพื่อแปลงกลับได้ ตราบใดที่สตริงครบถ้วนและอยู่ในรูปแบบที่เครื่องมือรองรับ
การเลือกรูปแบบและข้อมูลเข้าที่ต้องระวัง
Base64 มาตรฐานเหมาะกับอีเมล data URL และระบบที่ระบุชัดเจนว่าต้องใช้รูปแบบนี้ ส่วนพาธ URL พารามิเตอร์คิวรี และโทเค็น ควรใช้รูปแบบที่ระบบปลายทางกำหนด Base64url อาจเหมาะสมหากข้อกำหนดระบุให้ใช้ เครื่องมือนี้ใช้การทำงานแบบ base64_encode มาตรฐานของ PHP จึงไม่ควรถือว่าผลลัพธ์เป็น Base64url
เครื่องมือนี้เข้ารหัสไบต์ของรูปภาพที่อัปโหลด ช่องว่าง เครื่องหมายวรรคตอน ตัวเลข อักขระที่มีเครื่องหมายกำกับเสียง และข้อความที่ไม่ใช่อักษรละตินภายใน SVG หรือข้อมูลเมตาของรูปภาพ ล้วนถูกเข้ารหัสเป็นส่วนหนึ่งของไบต์เหล่านั้น ส่วนชื่อไฟล์ที่มีอักขระดังกล่าวแยกจากเนื้อหาไฟล์ และไม่ได้ถูกรวมอยู่ใน Base64 โดยอัตโนมัติ
ใน PHP ฟังก์ชัน base64_encode จะคืนค่าเปล่าสำหรับชุดไบต์ว่าง ไฟล์ขนาดใหญ่จะได้สตริงยาว และ Base64 จะเพิ่มจำนวนไบต์จากต้นฉบับประมาณหนึ่งในสาม โดยยังไม่รวมไวยากรณ์ JSON หรือ data URL ที่ครอบอยู่ Base64 ไม่ได้บีบอัดรูปภาพ เพิ่มคุณภาพ หรือเปลี่ยนขนาดพิกเซล
คำถามที่พบบ่อย
ใส่รูปภาพ Base64 ลงใน CSS โดยตรงได้ไหม?
ได้ พร็อพเพอร์ตี CSS ที่รองรับ URL ของรูปภาพสามารถใช้ data URL ที่มีรูปแบบถูกต้องได้ วิธีนี้เหมาะกับไฟล์ขนาดเล็กที่รวมข้อมูลไว้ในตัวเอง แต่การฝังรูปภาพขนาดใหญ่จะทำให้สไตล์ชีตมีขนาดเพิ่มขึ้น และเบราว์เซอร์ไม่สามารถแคชรูปภาพแยกจากไฟล์ CSS ได้
ทำไมสตริง Base64 ถึงมีการขึ้นบรรทัดใหม่?
เครื่องมือนี้คืนค่าเป็นข้อความต่อเนื่องโดยไม่มีการขึ้นบรรทัดใหม่ เพราะฟังก์ชัน base64_encode ของ PHP จะไม่แทรกตัวแบ่งบรรทัด หากพบการขึ้นบรรทัดใหม่ แสดงว่าเกิดขึ้นระหว่างการคัดลอกหรือการประมวลผลในภายหลัง ตัวถอดรหัสจำนวนมากจะข้ามช่องว่าง แต่ API ที่ตรวจรูปแบบอย่างเคร่งครัดอาจปฏิเสธข้อมูล จึงควรใช้สตริงต่อเนื่องเมื่อข้อกำหนดของระบบปลายทางระบุไว้
เปลี่ยนชื่อไฟล์รูปภาพแล้วค่า Base64 จะเปลี่ยนไหม?
Base64 แทนค่าไบต์ของไฟล์ ไม่ใช่ชื่อไฟล์ ดังนั้นการเปลี่ยนชื่อโดยไม่แก้ไขไฟล์จะไม่ทำให้ค่าที่เข้ารหัสเปลี่ยนไป แต่การแก้ไขข้อมูลเมตา บันทึกรูปภาพใหม่ หรือแปลงรูปแบบไฟล์จะทำให้ไบต์เปลี่ยนและได้สตริงคนละค่า
ใช้ Base64 ปกป้องรูปภาพส่วนตัวได้ไหม?
ไม่ได้ Base64 สามารถย้อนกลับได้โดยไม่ต้องใช้รหัสผ่านหรือกุญแจลับ สำหรับข้อมูลที่เป็นความลับ ให้ใช้การเข้ารหัส การยืนยันตัวตน และการควบคุมการเข้าถึงที่เหมาะสม และอย่าลืมว่าเครื่องมือนี้จะส่งรูปภาพไปยังเซิร์ฟเวอร์ผ่าน HTTPS เพื่อประมวลผล
จะตรวจสอบได้อย่างไรว่าแปลงสำเร็จ?
ถอดรหัสสตริงทั้งหมด แล้วเปิดผลลัพธ์ด้วยโปรแกรมดูรูปภาพที่รองรับรูปแบบต้นฉบับ ตรวจสอบว่าขนาดและเนื้อหาที่มองเห็นตรงกับไฟล์ต้นฉบับ และเก็บอักขระเติมเต็มที่ท้ายสตริงไว้ เว้นแต่ระบบปลายทางจะระบุชัดเจนว่าต้องลบออก
เครื่องมือที่คล้ายกัน
แปลงข้อมูล Base64 เป็นรูปภาพด้วยเครื่องมือ Base64 เป็นรูปภาพของเรา เพื่อเรียกดูรูปภาพได้อย่างรวดเร็วและง่ายดาย
เครื่องมือยอดนิยม
สร้างลายเซ็นแบบกำหนดเองของคุณได้อย่างง่ายดายและดาวน์โหลดได้อย่างสะดวก
ใช้เครื่องมือ ping ของเราเพื่อตรวจสอบสถานะและเวลาตอบสนองของเว็บไซต์ เซิร์ฟเวอร์ หรือพอร์ตใด ๆ ได้อย่างรวดเร็วและมีประสิทธิภาพ
เครื่องมือค้นหา IP ของ Digily Link ให้ข้อมูลโดยละเอียดเกี่ยวกับที่อยู่ IP ใด ๆ ใช้บริการออนไลน์ฟรีนี้เพื่อดูข้อมูล IP อย่างครบถ้วน
สร้างลิงก์ WhatsApp ฟรีได้ทันทีด้วยเครื่องมือสร้างลิงก์ WhatsApp ของเรา เพิ่มข้อความที่กำหนดเองและเริ่มแชทได้ในคลิกเดียว โดยไม่ต้องเข้าสู่ระบบหรือเขียนโค้ด