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

บันทึกข้อมูลบิตแมป Base64 เป็นไฟล์ .bmp หรือแปลงรูปภาพ Base64 ใดก็ตามที่เบราว์เซอร์แสดงได้ให้เป็น BMP 32 บิตแบบไม่บีบอัด สำหรับซอฟต์แวร์ Windows รุ่นเก่าและเครื่องมือของระบบฝังตัว

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

วิธีใช้งาน

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

การสังเกตบิตแมปใน Base64

ไฟล์บิตแมปของ Windows ขึ้นต้นด้วยตัวอักษรสองตัว BM ซึ่งเข้ารหัสเป็น Qk ที่ต้นสตริง Base64 พอดี ส่วนหัวที่ตามมาเก็บขนาดไฟล์ ตำแหน่งเริ่มต้นของข้อมูลพิกเซล ขนาดภาพ และความลึกบิต ข้อมูล BMP พบได้ในแอปพลิเคชัน Windows รุ่นเก่า การส่งออกจากคลิปบอร์ดและภาพหน้าจอ ระบบขายหน้าร้านและระบบอุตสาหกรรม เครื่องมือสำหรับจอแสดงผลของไมโครคอนโทรลเลอร์ และไฟล์สำหรับการทดสอบ ชนิด MIME มักเป็น image/bmp แต่ก็พบ image/x-ms-bmp ได้เช่นกัน

เบราว์เซอร์แสดง BMP แบบที่ใช้กันทั่วไปได้ แต่บิตแมป OS/2 ที่เก่ามากและโหมดการบีบอัดที่พบได้ยากอาจไม่แสดงผลในทุกเบราว์เซอร์ หากภาพตัวอย่างยังว่างเปล่าแม้สตริงจะขึ้นต้นด้วย Qk ให้ดาวน์โหลดเป็น “ต้นฉบับ” แล้วเปิดในโปรแกรมดูรูปภาพบนเดสก์ท็อป

ทำไมไฟล์ BMP จึงใหญ่มาก

ตัวแปลงเขียนพิกเซล 32 บิตแบบไม่บีบอัด พิกเซลละสี่ไบต์ ขนาดไฟล์จึงขึ้นอยู่กับขนาดภาพเท่านั้น ไม่ได้ขึ้นอยู่กับเนื้อหา:

ขนาดภาพขนาด BMPเมื่อเป็น Base64
640 × 480ประมาณ 1.2 MBประมาณ 1.6 MB
1920 × 1080ประมาณ 8.3 MBประมาณ 11 MB
3840 × 2160ประมาณ 33 MBประมาณ 44 MB

ภาพหน้าจอเดียวกันในรูปแบบ PNG มักเล็กกว่าถึงสิบเท่า ควรใช้ BMP เฉพาะเมื่อซอฟต์แวร์ปลายทางกำหนดให้ใช้เท่านั้น

เกี่ยวกับเอาต์พุต 32 บิต

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

หากต้องการถอดรหัส Base64 BMP บน Windows โดยไม่ใช้เบราว์เซอร์ ใช้ PowerShell ก็เพียงพอ:

$b64 = Get-Content .\image.txt -Raw
[IO.File]::WriteAllBytes("$PWD\image.bmp", [Convert]::FromBase64String($b64))

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

ทำไม BMP จึงใหญ่กว่าต้นฉบับมาก

เอาต์พุต BMP ไม่ได้บีบอัดและใช้พิกเซลละสี่ไบต์ PNG หรือ JPEG ที่บีบอัดแล้วของรูปภาพเดียวกันมักเล็กกว่ามาก

BMP รองรับความโปร่งใสหรือไม่

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

จะรู้ได้อย่างไรว่าสตริง Base64 เป็น BMP
ข้อมูล BMP ขึ้นต้นด้วย Qk ซึ่งเป็นรูป Base64 ของตัวอักษร BM เครื่องมือจะยืนยันรูปแบบโดยอ่านไบต์ในส่วนหัว
แปลง BMP กลับเป็น Base64 ได้หรือไม่
ได้ ด้วย แปลง BMP เป็น Base64 แต่ควรพิจารณาแปลงเป็น PNG ก่อน เพราะสตริง Base64 ของบิตแมปแบบไม่บีบอัดอาจยาวมาก