Tìm hiểu về file BMP

    Share

    Admin
    Adminstrator
    Adminstrator

    Nam
    Tổng số bài gửi : 703
    Age : 29
    Đến từ : H.O.U
    Hiện đang là : Student
    Sở trưởng : Design
    Registration date : 22/12/2007

    Thông báo Tìm hiểu về file BMP

    Bài gửi by Admin on Tue Sep 23, 2008 8:48 am

    Một file *.BMP được chia làm 3 phần chính:
    BitmapHeader, BitmapInfor và BitmapData.
    Đây là chi tiết:
    BitmapHeader
    Bite # Ý nghĩa Chi tiết
    1-2 Nhận dạng file Kiểu arrayp1..2] of char:chứa ký tự BM
    3-6 Kích thướ file Kiểu Longint: tính bằng byte
    7-10 Reserve nt : tôi chưa biết(có lẽ là tên file thừa)
    11-14 Byte bắt đầu Kiểu longint, vị trí byte bắt đầu vùng
    vùng data data kể từ đầu file

    BitmapInfor
    1-4 Số byte trong vùng info Kiểu Longint, hiện tại có
    giá trị 40
    5-8 Chiều rộng bitmap Kiểu longint tính bằng pixel
    9-12 Chiều cao bitmap Kiểu longint tính bằng pixel
    13-14 Số Planes màu Kiểu Word số bảng màu
    15-16 Số bits cho một pixel Kiểu Word, các giá trị có
    thể có 1: Đen/trắng, 4:16
    màu, 8:256 màu, 24: 24bit
    màu
    17-20 Kiểu nén dữ liệu Kiểu Longint có giá trị là
    0: Không nén
    1: Nén runlength+8bit/pixel
    2: Nén runlength+4bit/pixel
    21-24 Kích thước ảnh Kiểu Longint, bằng số byte
    của ảnh
    25-28 Độ phân giải ngang Kiểu Longint, tính bằng pixel
    29-32 Độ phân giải dọc Kiểu Longint, tính bằng pixel
    33-36 Số màu được sử dụng Kiểu Longint
    trong ảnh
    37-40 Số màu được sử dụng Kiểu Longint
    khi hiện ảnh
    Bitmap palette
    Tiếp theo sau vùng info là palette màu của BMP, gồm nhiều bộ có kích thước bằng 4 byte xếp liền nhau theo cấu trúc Blue-Green-Red và một Byte dành riêng cho Itensity. Kích thước của vùng Palette màu bằng 4*số màu của ảnh. Vì Palette màu của màn hình có cấu tạo theo thứ tự Red-Green-Blue, nên khi đọc palette màu của ảnh BMP vào ta phải chuyển đổi lại cho phù hợp. Số màu của ảnh được biết dựa trên số bít cho 1 pixel cụ thể là:
    8.bits/pixel: ảnh 256 màu, 4bits/pixel: ảnh 16 màu, 24bits/pixel ảnh 24 bít màu
    BitmapData:
    Phần này kề tiếp ngay sau Palette màu của BMP. Đây là phần chứa các giá trị màu của các điểm ảnh trong BMP. Các điểm ảnh được lưu theo thứ tự từ trái qua phải trên một dòng và các dòng lại được lưu theo thứ tự dưới lên trên. Mỗi Byte trong vùng BitmapData biểu diễn 1 hoặc nhiều điểm ảnh tùy theo số bits cho một pixel.
    *) Thuật toán hiển ảnh BMP gồm các bước sau
    Đọc BitmapHeader để nhận dạng file có đúng là BMP thật không (hai byte đầu tiên là "BM") và xác định Byte bắt đầu vùng Bitmap Data
    Đọc BitmapInfo để lấy các thông tin cơ bản về ảnh như chiểu rộng, chiều cao, số Bits cho 1 pixel từ đó suy ra số màu và kích thước palette màu.
    Đọc Palette màu và chuyển đổi palette màu từ dạng Blue-Green-Red-Reverse sang Ren-Green-Blue
    Đọc phần Bitmap Data, tính toán và vẽ từng điểm ra màn hình theo thứ tự từ trái qua phải và từ dưới lên trên.
    Phân chương trình hẹn mọi người dịp khác bây giờ mỏi tay lắm rồi hìhì!!!!!

      Hôm nay: Wed Jan 25, 2017 2:16 am