Similar topics


      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: Mon Dec 05, 2016 11:35 pm