คู่มือเครื่องมือแปลง Base64 เป็นรูปภาพ ถอดรหัส Data URI กลับเป็นไฟล์รูปจริง
เรียนรู้วิธีใช้เครื่องมือแปลง Base64 เป็นรูปภาพ ถอดรหัส Base64 string และ data URI กลับเป็นรูปภาพที่มองเห็นและดาวน์โหลดได้ พร้อมตรวจจับรูปแบบไฟล์อัตโนมัติ ดูขนาด decode แล้ว และบันทึกเป็น PNG หรือ JPG ทำงานทั้งหมดในเบราว์เซอร์
Table of Contents
คู่มือเครื่องมือแปลง Base64 เป็นรูปภาพ ถอดรหัส Data URI กลับเป็นไฟล์รูปจริง
data URI แทรกอยู่ในงานเว็บยุคใหม่แทบทุกที่ ทั้งใน CSS background-image, HTML template, JSON payload ที่ API ส่งกลับมา และ markup ในอีเมล ปัญหาคือรูปภาพที่ encode เป็น Base64 มนุษย์อ่านไม่เข้าใจเลย — สายอักขระยาวเป็นวาวไม่บอกคุณหรอกว่ารูปนั้นหน้าตาเป็นอย่างไร ใหญ่แค่ไหน หรือแม้แต่ว่าข้อมูลยังสมบูรณ์อยู่หรือไม่ การ decode คือทางเดียวที่จะรู้คำตอบ และ เครื่องมือแปลง Base64 เป็นรูปภาพ ให้คำตอบภายในไม่กี่วินาที
เครื่องมือนี้ทำงานตรงข้ามกับตัว encode คุณเพียงวาง Base64 string หรือ data URI แบบเต็ม ระบบจะแสดงรูปภาพพร้อม live preview ตรวจจับรูปแบบไฟล์อัตโนมัติจากลายเซ็นไบนารี แสดงขนาดหลัง decode เป็นไบต์ และความกว้างความสูงของภาพเป็นพิกเซล ถ้าภาพถูกใจกดดาวน์โหลดเป็นไฟล์ PNG หรือ JPG ได้ในคลิกเดียว
ทุกอย่างทำงานแบบ client-side ล้วน ๆ ไม่มีการอัปโหลด string ขึ้น server และไม่ต้องสมัครสมาชิก ซึ่งสำคัญมากเวลา string ที่ตรวจสอบมาจาก production log, payload ของลูกค้า หรือไฟล์ดีไซน์ที่เป็นความลับ
ทำไมต้องใช้เครื่องมือแปลง Base64 เป็นรูปภาพ?
- เห็นของจริงที่ซ่อนอยู่ใน data URI — Base64 string ที่ฝังใน CSS, HTML หรือ JSON นั้นอ่านไม่ออกจนกว่าจะ decode เครื่องมือแสดงภาพทันที เพื่อให้คุณยืนยันได้ว่าเป็นโลโก้ กราฟ หรือ screenshot ที่ถูกต้อง
- ตรวจจับรูปแบบไฟล์อัตโนมัติจากลายเซ็น — ไม่ต้องรู้ว่า payload เป็น PNG, JPEG หรือ SVG เครื่องมือระบุรูปแบบจากไฟล์ signature ที่เป็นมาตรฐานให้เอง
- ตรวจขนาดและความละเอียดก่อนบันทึก — จำนวนไบต์หลัง decode และพิกเซลแสดงคู่กับ preview ทำให้เห็นทันทีว่า payload บวมเกินไปหรือเป็นแค่ placeholder เล็ก ๆ
- ดาวน์โหลดเป็น PNG และ JPG ในคลิกเดียว — บันทึกเป็นไฟล์รูปจริงโดยไม่ต้องใช้ command line, เขียน script decode ชั่วคราว หรือเอาไปวางใน address bar แล้วภาวนา
- รองรับทั้ง data URI เต็มและ Base64 เปล่า — วาง data:image/png;base64,... ตามที่ copy มาเลย หรือวางเฉพาะส่วน encode เครื่องมือตัด prefix และ decode ให้ทั้งสองแบบ
- เป็นส่วนตัวโดยดีไซน์ — การ decode เกิดขึ้นด้วย JavaScript บนเครื่องคุณ screenshot ที่ละเอียดอ่อนและรูปของลูกค้าจึงไม่หลุดออกจากเครื่อง
ฟีเจอร์หลัก (Key Features)
| ฟีเจอร์ | สิ่งที่ทำ |
|---|---|
| Live preview | แสดงรูปหลัง decode ทันทีที่วาง string ยืนยันได้ภายในไม่กี่วินาที |
| ตรวจจับรูปแบบอัตโนมัติ | จำแนก payload PNG, JPEG และ SVG จากลายเซ็นไบนารีโดยอัตโนมัติ |
| ขนาดและความละเอียด | แสดงขนาดไบต์หลัง decode พร้อมความกว้างและความสูงเป็นพิกเซล |
| จัดการ prefix | รับทั้ง data URI เต็มและ Base64 เปล่า พร้อมตัด header เมื่อพบ |
| ดาวน์โหลด PNG และ JPG | บันทึกภาพที่ decode แล้วเป็นไฟล์จริงในคลิกเดียว |
| Client-side 100% | decode ทั้งหมดเกิดขึ้นในเบราว์เซอร์ ไม่มีการอัปโหลดหรือจัดเก็บ |
- การอ่านลายเซ็นไฟล์เหนือกว่านามสกุล — นามสกุลเป็นแค่ป้ายชื่อ การอ่านไบต์ชุดแรกจริง ๆ ต่างหากที่บอกความจริงของ string ที่ติดป้ายผิด
- preview ช่วยตรวจความสมบูรณ์ด้วย — payload ที่ถูกตัดขาดหรือเสียหายจะแสดงภาพไม่ได้ เป็นสัญญาณทันทีว่าข้อมูลต้นทางไม่ครบ
วิธีการใช้งาน
- คัดลอก string — Base64 string หรือ data URI จากไฟล์ CSS, JSON response, email template หรือ code snippet
- วางลงช่อง input ในหน้า เครื่องมือแปลง Base64 เป็นรูปภาพ รองรับทั้ง data URI เต็มและ Base64 เปล่า
- ดู live preview พร้อมรูปแบบที่ตรวจพบ ขนาดไบต์หลัง decode และความละเอียดเป็นพิกเซล
- ยืนยันว่าตรงตามที่คาด — เนื้อหาถูกต้อง ขนาดสมเหตุสมผล ความละเอียดเหมาะกับที่จะนำไปใช้
- ดาวน์โหลดรูป เป็น PNG หรือ JPG ได้ asset จริงพร้อมใช้กับโปรเจกต์ แนบ ticket หรือเก็บ archive
ลายเซ็นไฟล์ Data URI และการคำนวณขนาด
ลายเซ็นไฟล์ซ่อนอยู่ในตัวอักษรชุดแรก
รูปแบบไฟล์ยอดนิยมทุกชนิดเริ่มด้วยลำดับไบต์ที่จดจำได้ (magic number) และลำดับนี้รอดพ้นการ encode เป็น Base64 มาเป็นข้อความชุดแรกที่คงที่:
- PNG เริ่มด้วยไบต์ 89 50 4E 47 เมื่อ encode เป็น Base64 ทุก payload PNG จะขึ้นต้นด้วย iVBORw0KGgo — เห็นตัวอักษรชุดนี้คือกำลังมอง PNG
- JPEG เริ่มด้วย FF D8 FF ซึ่ง encode เป็น prefix /9j/ ทุก Base64 JPEG จึงขึ้นต้นแบบนี้
- SVG เป็นข้อความไม่ใช่ไบนารี เมื่อ encode จะขึ้นต้นด้วย Base64 ของแท็กเปิด XML — prefix PHN2Z decode กลับได้แท็กเปิดของเอกสาร SVG
เครื่องมือตรวจจับรูปแบบด้วยวิธีเดียวกันนี้ คือ decode ไบต์ชุดแรกไม่กี่ตัวแล้วเทียบกับลายเซ็นเหล่านี้ เทคนิคเดียวกับที่เครื่องมือ forensics ใช้ระบุไฟล์ที่ถูกเปลี่ยนชื่อ
โครงสร้างของ data URI
data URI มีสี่ส่วนคือ scheme data:, MIME type เช่น image/png, ส่วนเสริม ;base64 (ถ้ามี) และเครื่องหมายจุลภาคตามด้วย payload ที่ encode แล้ว ทุกอย่างก่อนจุลภาคคือ metadata ทุกอย่างหลังจุลภาคคือตัวรูปภาพ เครื่องมือจะแยก prefix ออก decode payload และใช้ MIME type ที่ประกาศมาไตร่ตรองคู่กัน — ถ้า prefix บอกว่า PNG แต่ไบต์บอกว่า JPEG ไบต์เป็นผู้ชนะ
ทำไม Base64 ทำให้ขนาดใหญ่ขึ้นราวหนึ่งในสาม
Base64 เปลี่ยนข้อมูลไบนารีทุก 3 ไบต์เป็นอักขระ 4 ตัว payload จึงใหญ่กว่าไฟล์ต้นฉบับราว 33% บวก padding และบางบริบทมีขึ้นบรรทัดใหม่ด้วย ภาพถ่าย 300 KB กลายเป็น string ราว 400,000 ตัวอักษร การ decode ก่อนตรวจสอบจึงสำคัญ เพราะขนาดหลัง decode ต่างหากที่นับบนดิสก์ ใน bandwidth และใน build output ของคุณ
เมื่อไรควรฝัง Base64 และเมื่อไรไม่ควร
- ควรฝัง: icon ตัวจิ๋ว โลโก้เรียบ ๆ และ placeholder ไม่กี่กิโลไบต์ ที่การประหยัด HTTP request หนึ่งครั้งคุ้มกับขนาดที่โตขึ้นและการเสีย cache แยก
- ไม่ควรฝัง: ภาพถ่ายและอะไรก็ตามที่เกินราว 10–20 KB การฝังทำให้เอกสารบวม first paint ช้า cache แยกไม่ได้ และหน้าหนักขึ้นอีกหนึ่งในสามโดยไม่ได้อะไรกลับมา
การ decode คือวิธีตรวจเส้นแบ่งนี้ วาง string ที่สงสัย อ่านขนาดหลัง decode แล้วตัดสินใจว่า asset นั้นควรกลายเป็นไฟล์จริงหรือยัง
กรณีการใช้งานจริง
ตรวจสอบรูปที่ฝังในอีเมลหรือ CSS
email template และธีม CSS มักมาพร้อมรูปที่ซ่อนอยู่ในสาย Base64 ยาว ๆ ก่อนอนุมัติ template หรือรับช่วง stylesheet ลอง decode ทุก string ที่ฝังไว้ เพื่อดูว่ามีรูปอะไรแถมมาบ้าง และมีตัวไหนใหญ่หรือเก่ากว่าที่คิด
ดึงรูปภาพจาก JSON payload
API จำนวนมากส่งรูปกลับมาเป็นฟิลด์ Base64 ใน JSON ทั้ง avatar, กราฟที่สร้างให้, scan เอกสาร และ thumbnail รายงาน แทนที่จะเขียน script decode ขวัญใจชั่วคราว วางค่าลงไปแล้วรับรูป รูปแบบไฟล์ และความละเอียดได้ทันที
ตรวจสอบ data URI ก่อนนำไปใช้
เมื่อ data URI มาถึงมือจาก vendor, ระบบ export หรือ migration script การวางตรวจสักครั้งยืนยันได้ว่า payload สมบูรณ์ รูปแบบตรงกับป้าย และภาพแสดงผลถูกต้องก่อน commit ลงที่ใดที่หนึ่ง
กู้คืนรูปภาพจาก code snippet
เจอ icon สวย ๆ ฝังอยู่ในบทเรียนหรือ codebase เก่า ๆ ? Base64 string ใน snippet นั้นคือรูปทั้งใบ decode แล้วดาวน์โหลดเป็นไฟล์ คุณก็ได้ asset พร้อมใช้โดยไม่ต้องไปตามหาต้นทางเดิม
แนวทางปฏิบัติที่ดี
- อย่า decode ข้อมูลที่ไม่น่าเชื่อถืออย่างเดียวดาย — ใช้ preview ในเครื่องมือบนเบราว์เซอร์เท่านั้น อย่าบันทึกแล้วเปิดไฟล์แปลกปลอมด้วยโปรแกรมบนเครื่อง การ preview ใน sandbox ช่วยกันไฟล์อันตรายไว้ห่าง ๆ
- เช็กขนาดหลัง decode ก่อนบันทึก — ถ้า "icon เล็ก ๆ" decode ออกมาเป็นเมกะไบต์ มีบางอย่างผิดปกติ payload บวมหรือไม่ใช่สิ่งที่อ้างว่าเป็น
- ภาพใหญ่ให้ใช้ไฟล์จริง — เมื่อภาพหลัง decode เกินไม่กี่กิโลไบต์ เก็บเป็นไฟล์แล้วอ้างอิงด้วย URL จะได้ cache ที่เหมาะสมและ compression ที่ดีกว่า
- อย่าแปลงรูปแบบซ้ำซ้อน — ถ้า signature บอกว่า JPEG ให้บันทึกเป็น JPG เพื่อคงไบต์ต้นฉบับ การแปลงข้ามระหว่าง lossy กับ lossless เสียคุณภาพหรือเปลืองขนาดโดยไม่จำเป็น
- เก็บ prefix ของ data URI ไว้เวลาแชร์ — MIME type ช่วยให้คนต่อไปเข้าใจ payload ทันที และจำเป็นถ้า string จะถูกใช้เป็น URI อีกครั้ง
- decode ในเบราว์เซอร์ ไม่ใช่บน production — เครื่องมือ client-side ปลอดภัย แต่การเอา payload แปลกปลอมไปวางใน shell ฝั่ง server นั้นไม่ปลอดภัย
เริ่มถอดรหัส data URI แรกของคุณเลย
เลิกขยี้ตากับสาย Base64 แล้วกัน เปิด เครื่องมือแปลง Base64 เป็นรูปภาพ วาง data URI หรือ string ที่ encode แล้วสักชุด แล้วเห็นรูป รูปแบบไฟล์ ขนาด และความละเอียดภายในไม่ถึงวินาที จากนั้นดาวน์โหลดเป็น PNG หรือ JPG แล้วไปต่อกับงานได้เลย
เครื่องมือที่เกี่ยวข้อง ที่คุณอาจสนใจ:
- Base64 Tool — encode และ decode ข้อความหรือไฟล์ใด ๆ รองรับ UTF-8 เต็มรูปแบบ
- Image to Base64 Converter — ทำทิศตรงข้าม: เปลี่ยนไฟล์รูปเป็น data URI สำหรับ CSS, HTML และ JSON
- Image Format Converter — แปลงรูปที่ดึงมาแล้วระหว่าง PNG, JPG, WebP และอื่น ๆ
ขอให้สนุกกับการ decode!
คำถามที่พบบ่อย
ถ: Base64 string ของฉันถูกอัปโหลดไปที่ไหนสักแห่งหรือเปล่า?
ตอบ: ไม่ การ decode และ preview เกิดขึ้นทั้งหมดในเบราว์เซอร์ด้วย JavaScript ปิด internet หลังโหลดหน้าแล้วเครื่องมือยังใช้ได้ปกติ — string ไม่เคยออกจากอุปกรณ์ของคุณ
ถ: data URI กับ Base64 เปล่าต่างกันอย่างไร?
ตอบ: data URI มี header อย่าง data:image/png;base64, นำหน้า payload ที่ encode แล้ว ส่วน Base64 เปล่าคือข้อความ encode ล้วน ๆ เครื่องมือรับทั้งสองแบบ ตัด prefix เมื่อพบ และระบุรูปแบบจริงจาก signature หลัง decode เสมอ
ถ: เครื่องมือตรวจจับและแสดงรูปแบบไฟล์ใดได้บ้าง?
ตอบ: ตรวจจับ payload PNG, JPEG และ SVG จากลายเซ็นไบนารี และแสดง preview ได้ทุกรูปแบบที่เบราว์เซอร์เปิดได้ รวมถึง GIF และ WebP โดยอ่านไบต์จริง ไม่พึ่งป้ายชื่อใน input
ถ: ทำไมรูปหลัง decode ถึงเล็กกว่า Base64 string?
ตอบ: เพราะการ encode เป็น Base64 ทำให้ข้อมูลใหญ่ขึ้นราว 33% — ทุก 3 ไบต์กลายเป็นอักขระ 4 ตัว ขนาดหลัง decode ที่เครื่องมือแสดงคือขนาดจริงของไฟล์รูปนั้น