Cách sử dụng
- 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.
- Kiểm tra bản xem trước, kích thước ảnh và dung lượng sau giải mã.
- 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.
- 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 ảnh | Dung lượng BMP | Dạng Base64 |
|---|---|---|
| 640 × 480 | khoảng 1,2 MB | khoảng 1,6 MB |
| 1920 × 1080 | khoảng 8,3 MB | khoảng 11 MB |
| 3840 × 2160 | khoảng 33 MB | khoả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?
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.