การเข้ารหัส

Data URI / รูปภาพ Base64

เข้ารหัสรูปภาพเป็น Data URI (data:image/…;base64,…) เพื่อฝังใน CSS/HTML และถอดรหัส Data URI หรือ Base64 ดิบกลับเป็นไฟล์ — ทั้งหมดในเบราว์เซอร์โดยตรง

ตัวอย่างรูปภาพจะแสดงที่นี่

A Data URI embeds a file's contents (usually an image) directly into HTML or CSS as a Base64 string, instead of linking to a separate file. This removes an extra network request at the cost of a larger document.

How to use it

Common uses

Things to keep in mind

Base64 encoding grows the data by about 33% — for large images, a Data URI is usually a worse choice than a separate file with browser caching.

A Data URI isn't cached separately from the document it's embedded in — it gets re-downloaded along with the page every time.

บทความเกี่ยวกับเครื่องมือนี้: Data URI: เมื่อไหร่ควรฝังรูปภาพลงในโค้ดโดยตรง

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

ควรใช้ Data URI แทนไฟล์ภาพปกติเมื่อไหร่?

Data URI เหมาะกับภาพขนาดเล็กที่ใช้บ่อย เช่น ไอคอนหรือโลโก้ เมื่อต้องการหลีกเลี่ยงการร้องขอ HTTP เพิ่มเติม เช่น ฝังภาพลงใน CSS หรือ HTML โดยตรง

การใช้ Data URI กับรูปภาพมีข้อเสียไหม?

มี มันทำให้ขนาดไฟล์โดยรวมใหญ่ขึ้น (ใหญ่กว่าภาพต้นฉบับราว 33% เพราะ Base64) ไม่ถูกแคชแยกต่างหากเหมือน URL ภาพจริง และเบราว์เซอร์หรือโปรแกรมอีเมลหลายตัวก็จำกัดขนาดของ Data URI ไว้

เครื่องมือนี้อัปโหลดภาพของฉันไปที่ไหนหรือไม่?

ไม่ ภาพถูกอ่านและเข้ารหัสทั้งหมดในเบราว์เซอร์ของคุณ ไม่เคยถูกส่งไปยังเซิร์ฟเวอร์

ใช้ Data URI สำหรับ SVG โดยไม่ใช้ Base64 ได้ไหม?

ได้ SVG คือข้อความ (XML) ดังนั้นแทนที่จะใช้ Base64 เพียงแค่ percent-encoding อักขระพิเศษก็เพียงพอ: data:image/svg+xml,%3Csvg...%3E วิธีนี้กระชับกว่าและยังคงแก้ไขได้โดยตรงในไฟล์ CSS

ใส่ Data URI ในแอตทริบิวต์ href หรือ background-image ได้ไหม?

ได้ Data URI ใช้งานได้ทุกที่ที่คาดว่าจะมีลิงก์อ้างอิงถึงทรัพยากร — ใน src, href, background-image ใน CSS และแม้แต่ใน @import ไวยากรณ์และข้อจำกัดขนาดเหมือนกับที่ใช้กับแท็ก img

บทความ: การเข้ารหัส

Base64: การเข้ารหัสมีไว้ทำไมและทำงานอย่างไร

Base64 เปลี่ยนข้อมูลไบนารีเป็นข้อความ ASCII อย่างไร และเมื่อไหร่ที่จำเป็นต้องใช้จริง ๆ

Base32: ต่างจาก Base64 อย่างไรและสะดวกกว่าเมื่อไหร่

ตัวอักษร Base32 ที่ไม่แยกตัวพิมพ์เล็กใหญ่ และกรณีที่สะดวกกว่า Base64

URL Encode/Decode: percent-encoding ในลิงก์

อักขระพิเศษในที่อยู่และพารามิเตอร์กลายเป็นลำดับ %XX ได้อย่างไร

HTML Entities: วิธีแสดงอักขระพิเศษอย่างปลอดภัย

ทำไมต้อง escape อักขระ < > & และสิ่งนี้ป้องกันไม่ให้มาร์กอัปเสียหายได้อย่างไร

JWT: โครงสร้างโทเคนและความหมายของการ "ถอดรหัส" JWT

header, payload และ signature ของ JWT และทำไมการถอดรหัสจึงไม่เหมือนกับการตรวจสอบลายเซ็น

Unicode Escape: ลำดับ \uXXXX หมายความว่าอย่างไร

ลำดับแบบ A ใน JSON และสตริง JS มาจากไหน และหมายความว่าอย่างไร

ROT13 และรหัสซีซาร์: การแทนที่อักขระแบบง่าย

ทำไมการเลื่อน 13 ตัวอักษรทำให้ ROT13 ผกผันในตัวเอง และทำไมยังมีการใช้อยู่ในปัจจุบัน

Punycode: โดเมนสากลทำงานใน DNS อย่างไร

โดเมนที่มีอักขระไม่ใช่ละตินกลายเป็นรูปแบบ ASCII ที่มีคำนำหน้า xn-- ได้อย่างไร

รหัสมอร์ส: ข้อความกลายเป็นจุดและขีดได้อย่างไร

หลักการเข้ารหัสตัวอักษรเป็นจุดและขีด และรหัสมอร์สยังใช้ที่ไหนอยู่บ้างในปัจจุบัน

Gzip + Base64: บีบอัดข้อมูลเพื่อส่งเป็นข้อความ

ทำไมข้อมูลไบนารีที่บีบอัดแล้วจึงถูกเข้ารหัสด้วย Base64 อีกครั้งก่อนใส่ลงในฟิลด์ข้อความ

XML Entities: การ escape อักขระในเอกสาร XML

เอนทิตี XML ที่จำเป็นห้าตัว ซึ่งหากไม่มีเอกสารจะเสียหายขณะแยกวิเคราะห์