Chuyển đổi Base64 sang BMP

Lưu dữ liệu bitmap Base64 thành tệp .bmp, hoặc chuyển bất kỳ ảnh Base64 nào trình duyệt hiển thị được thành BMP 32 bit không nén cho phần mềm Windows cũ và công cụ cho hệ thống nhúng.

Chạy hoàn toàn trong trình duyệt của bạn. Không có gì được tải lên.

Cách sử dụng

  1. Dán chuỗi Base64 hoặc URI data:image/bmp;base64. PNG, JPEG, WebP và các định dạng khác cũng được chấp nhận.
  2. Kiểm tra bản xem trước, kích thước ảnh và dung lượng sau giải mã.
  3. BMP đã được chọn sẵn ở mục Tải xuống dạng. Nếu dữ liệu đã là BMP và bạn muốn giữ nguyên, hãy chọn Bản gốc.
  4. Tải xuống tệp .bmp.

Nhận ra bitmap trong Base64

Tệp bitmap của Windows bắt đầu bằng hai chữ cái BM, được mã hóa thành Qk ở ngay đầu chuỗi Base64. Phần header theo sau lưu dung lượng tệp, vị trí bắt đầu của dữ liệu điểm ảnh, kích thước ảnh và độ sâu bit. Dữ liệu BMP xuất hiện trong các ứng dụng Windows cũ, bản xuất từ bộ nhớ tạm và ảnh chụp màn hình, hệ thống bán hàng (POS) và hệ thống công nghiệp, công cụ hiển thị cho vi điều khiển và dữ liệu kiểm thử. Kiểu MIME thường là image/bmp, dù đôi khi cũng gặp image/x-ms-bmp.

Trình duyệt hiển thị được các biến thể BMP phổ biến, nhưng bitmap OS/2 rất cũ và các chế độ nén hiếm gặp có thể không hiển thị trên mọi trình duyệt. Nếu bản xem trước vẫn trống dù chuỗi bắt đầu bằng Qk, hãy tải xuống dạng Bản gốc và mở bằng trình xem ảnh trên máy tính.

Vì sao tệp BMP lớn đến vậy

Trình chuyển đổi ghi điểm ảnh 32 bit không nén, bốn byte cho mỗi điểm ảnh, nên dung lượng tệp chỉ phụ thuộc vào kích thước ảnh chứ không phụ thuộc vào nội dung:

Kích thước ảnhDung lượng BMPDạng Base64
640 × 480khoảng 1,2 MBkhoảng 1,6 MB
1920 × 1080khoảng 8,3 MBkhoảng 11 MB
3840 × 2160khoảng 33 MBkhoảng 44 MB

Cùng ảnh chụp màn hình đó ở dạng PNG thường nhỏ hơn mười lần. Chỉ dùng BMP khi phần mềm nhận tệp yêu cầu.

Về đầu ra 32 bit

Đầu ra giữ kênh alpha, nên các vùng trong suốt vẫn trong suốt trong những chương trình đọc được kênh này. Một số chương trình cũ bỏ qua kênh alpha và có thể hiển thị các vùng đó thành màu đen hoặc trắng. Nếu gặp trường hợp này, hãy loại bỏ độ trong suốt khỏi ảnh nguồn trước khi chuyển đổi.

Để giải mã BMP Base64 trên Windows mà không cần trình duyệt, chỉ cần PowerShell là đủ:

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

Câu hỏi thường gặp

Vì sao BMP lớn hơn bản gốc nhiều đến vậy?

Đầu ra BMP không nén và dùng bốn byte cho mỗi điểm ảnh. Bản PNG hoặc JPEG đã nén của cùng ảnh đó thường nhỏ hơn rất nhiều.

BMP có hỗ trợ độ trong suốt không?

Có, các tệp BMP 32 bit mà công cụ này tạo ra đều có kênh alpha. Độ trong suốt có được hiển thị hay không tùy thuộc vào chương trình mở tệp.

Làm sao biết một chuỗi Base64 có phải BMP không?
Dữ liệu BMP bắt đầu bằng Qk, dạng Base64 của hai chữ cái BM. Công cụ xác nhận định dạng bằng cách đọc các byte header.
Tôi có thể chuyển BMP trở lại Base64 không?
Có, bằng BMP sang Base64. Hãy cân nhắc chuyển sang PNG trước, vì chuỗi Base64 của một bitmap không nén có thể rất dài.