Trước tiên, chúng ta cùng tìm hiểu qua về định dạng ảnh Bitmap. Cấu trúc ảnh Bitmap chia làm 3 phần chính:
Phần Bitmap Header:
Phần Bitmap InfoHeader
Phần Bitmap Data
Tiếp theo là vùng chứa các giá trị màu của các điểm ảnh Bitmap. Các điểm ảnh được lưu trữ theo chiều từ trái sang phải trên cùng một dòng, các dòng được lưu theo thứ tự ngược từ dưới lên trên. Mỗi Byte trong vùng Bitmap Data biểu diễn 1 hoặc nhiều điểm ảnh theo số Bits cho 1 Pixel.
Đặc điểm nổi bật nhất của định dạng Bitmap là tập tin hình ảnh thường không được nén bằng bất kì thuật toán nào. Khi lưu ảnh, các điểm ảnh được ghi trực tiếp vào tập tin - một điểm ảnh sẽ được mô tả bởi một hay nhiều byte tuỳ thuộc vào giá trị số màu của ảnh. Do đó, một hình ảnh lưu dưới dạng Bitmap thường có kích thước rất lớn, gấp nhiều lần so với các ảnh được nén (GIF, JPG, PNG). Tuy nhiên, cách lưu trữ như vậy cũng thuận tiện khi xử lý ảnh.
Với cấu trúc ảnh như trên, chương trình đọc ảnh để chuyển sang file văn bản được viết với các chú ý sau đây:
- Đọc phần header gồm 54 byte và lấy ra thông tin gồm chiều rộng, chiều cao ảnh để lưu vào các biến w và h tương ứng.
- Bỏ qua dấu hiệu kết thúc của file ảnh (dòng cuối) gồm 8 bytes gồm toàn bit 0.
- Đọc lần lượt từng dòng, theo từng cụm 32 bít (nếu thiếu thì bổ sung để đủ 32 bit)
- Bit 0 và bit 1 tương ứng với màu đen và màu trắng.
Chương trình minh họa đọc file ảnh Bitmap đen trắng Vidu.bmp và ghi kết quả là file bit Vidu.bit tương ứng. Ví dụ:
Chương trình:
Bạn đọc có thể chạy thử chương trình trên với các bộ dữ liệu khác nhưng chú ý dữ liệu vào phải là ảnh Bitmap đen trắng. Một cách để tạo ra những file ảnh như vậy là chương trình ứng dụng Paint của Windows (ghi với lựa chọn là Monochrome Bitmap).
Ứng dụng trên có thể áp dụng để thực hiện được với ảnh màu và ảnh theo các định dạng khác nhau sau khi thực hiện tiền xử lý những ảnh đó bằng các ứng dụng đã có để đưa về ảnh dạng bitmap đen trắng. Ngoài ra, cũng có thể dễ dàng sửa đổi chương trình để thực hiện chức năng chuyển ngược lại từ file văn bản dạng bit về file ảnh Bitmap hoặc bổ sung để in ra file văn bản dạng bit cùng chiều với file ảnh.
Nguyễn Văn Trường
GV Khoa Toán, ĐH Sư phạm Thái Nguyên.
Tải bài viết PHƯƠNG PHÁP CHUYỂN ẢNH THEO ĐỊNH DẠNG BITMAP VỀ FILE BIT
School@net (Theo THNT)
|