วิธีใช้งาน
- วางข้อความ Base64 หรือ URI แบบ data:image/jpeg;base64 ลงในช่องอินพุต
- ตรวจสอบภาพตัวอย่าง รูปแบบที่ตรวจพบ และขนาดภาพ
- JPG ถูกเลือกไว้แล้ว เลื่อนแถบ “คุณภาพ” ค่าที่สูงขึ้นจะเก็บรายละเอียดไว้มากขึ้น ส่วนค่าที่ต่ำลงจะได้ไฟล์ที่เล็กลง
- ดาวน์โหลดไฟล์ .jpg หากต้องการคงไฟล์ JPEG ที่มีอยู่ไว้ตามเดิมทุกประการ ให้เลือก “ต้นฉบับ” แทน
Base64 ของ JPEG มีลักษณะอย่างไร
ไฟล์ JPEG ทุกไฟล์ขึ้นต้นด้วยไบต์ FF D8 FF Base64 ของไฟล์จึงขึ้นต้นด้วย /9j/ เสมอ อักขระถัดมาบอกใบ้ถึงที่มาของไฟล์ได้ /9j/4AAQSkZJRg คือรูปภาพ JFIF ธรรมดา ส่วน /9j/4Q มักหมายถึงส่วนหัว Exif ที่กล้องหรือโทรศัพท์เขียนไว้ คุณจะพบ Base64 JPEG ในการอัปโหลดจากแอปมือถือ การส่งแบบฟอร์ม ไฟล์ส่งออกจาก CMS ไฟล์แนบอีเมล และฟิลด์รูปภาพใน REST API
JPG และ JPEG คือรูปแบบเดียวกัน นามสกุลที่สั้นกว่ามีที่มาจากยุค MS-DOS ซึ่งนามสกุลไฟล์ยาวได้ไม่เกินสามอักขระ ชนิด MIME ที่ถูกต้องคือ image/jpeg เครื่องมือนี้อ่านจากไบต์โดยตรง ดังนั้นแม้ data URI จะระบุเป็น image/jpg หรือ image/png ก็ยังถอดรหัสได้ถูกต้อง
คุณภาพ ความโปร่งใส และเมทาดาทา
JPEG เป็นรูปแบบที่สูญเสียข้อมูล และการเข้ารหัสใหม่แต่ละครั้งจะทิ้งรายละเอียดไปอีกเล็กน้อย เมื่ออินพุตเป็น JPEG อยู่แล้วและคุณต้องการเพียงตัวไฟล์ ให้เลือก ต้นฉบับ เพื่อบันทึกโดยไม่ต้องบีบอัดซ้ำอีกรอบ ใช้ตัวเลือก JPG เมื่อต้องการแปลง PNG, WebP หรือรูปแบบอื่น หรือเมื่อต้องการลดขนาดภาพถ่ายขนาดใหญ่ คุณภาพประมาณ 80 ถึง 90 เปอร์เซ็นต์เป็นจุดสมดุลที่นิยมใช้ระหว่างขนาดไฟล์กับความคมชัด
ถอดรหัส Base64 JPEG ใน Node.js
const fs = require('fs');
// ตัดส่วนนำหน้า data URI ออกหากมี
const b64 = input.replace(/^data:[^,]+,/, '');
fs.writeFileSync('photo.jpg', Buffer.from(b64, 'base64'));
หากต้องการแปลงในทิศทางกลับกัน แปลง JPG เป็น Base64 จะเปลี่ยนภาพถ่ายเป็นสตริงหรือ data URI
คำถามที่พบบ่อย
JPG กับ JPEG เหมือนกันหรือไม่
image/jpeg หากโปรแกรมต้องการนามสกุลแบบใดแบบหนึ่ง ก็เปลี่ยนชื่อไฟล์ได้ตามสะดวกทำไมพื้นหลังโปร่งใสจึงกลายเป็นสีขาว
JPEG จัดเก็บความโปร่งใสไม่ได้ ตัวแปลงจึงเติมพิกเซลโปร่งใสด้วยสีขาวก่อนเข้ารหัส เลือก PNG หรือ WebP เพื่อคงพื้นหลังโปร่งใสไว้
จะหลีกเลี่ยงการสูญเสียคุณภาพได้อย่างไร
หากข้อมูล Base64 เป็น JPEG อยู่แล้ว ให้ดาวน์โหลดเป็น “ต้นฉบับ” เพื่อให้ได้ไบต์ที่ตรงกันทุกประการ การเข้ารหัสใหม่เป็น JPG แม้จะใช้คุณภาพสูง ก็ยังสูญเสียคุณภาพไปบ้างเสมอ
ภาพถ่ายยังคงข้อมูล Exif ไว้หรือไม่
เฉพาะเมื่อเลือก “ต้นฉบับ” เท่านั้น JPG ที่แปลงแล้วมีเพียงพิกเซล ซึ่งยังเป็นวิธีง่าย ๆ ในการลบข้อมูลตำแหน่งก่อนแชร์ภาพถ่ายด้วย