tui đang làm một số việc liên quan đến file ảnh bitmap nhưng không hiểu các nó lưu trữ thông tin như thế nào, tui chỉ biết vài cái sơ sơ? ví dụ như nó lưu một điểm ảnh bằng 3 byte liên tiếp nhau để biểu diễn các màu (đỏ,xanh,vang??), nhưng còn 54 byte đầu tiên của file bitmap thì nó biểu diễn cái gì tui không rõ, ai làm ơn chỉ dùm tui được không?
Còn tuỳ nó có nén hay không nữa Bạn vào đây tham khảo http://atlc.sourceforge.net/bmp.html Có dính vãi chữ Tàu, nhưng cũng không ảnh hưởng gì...
Đây nay typedef struct tagBITMAPINFOHEADER{ DWORD biSize; LONG biWidth; LONG biHeight; WORD biPlanes; WORD biBitCount; DWORD biCompression; DWORD biSizeImage; LONG biXPelsPerMeter; LONG biYPelsPerMeter; DWORD biClrUsed; DWORD biClrImportant; } BITMAPINFOHEADER, *PBITMAPINFOHEADER;
cái đó tui xem qua rùi, không đủ, thế này nhá, cái DWORD biSizeImage; nó có nghĩa là gì? tui xem một số file bitmap thấy kết thúc mỗi một dòng ảnh điểm thì nó lại chèn thêm một số ký tự vào để kết thúc dòng đó, số ký tự này có file thì có 2 byte, có file có 1byte, có file thì không có, bởi vậy nên tui không hiểu thế nào, nhưng nếu bỏ hai ký tự này đi thì chương trình sẽ không đọc đúng cái hình bitmap nữa. Tui nghĩ là do cái bisizeimage đó, trong trang của ông nó có câu đại loại là: "this number must be rounded to the next 4 bytes", chả hiểu thế khỉ nào? ông nào giải thích giùm. À, có thể tui nói hơi khó hiểu, như thế này nhé: tui có ảnh bitmap 24bit,ok? không nén, như vậy mỗi một pixel của ảnh thì tương đương với 3 byte trong file bitmap, isn't it??? nếu vậy một ảnh có kích thước 150x200 pixel phải có 150x200x3 byte +54 byte ở đầu đúng không, nhưng thực ra không phải vậy. tuỳ theo kích thước ảnh, có kích thước dùng công thức trên là đúng, còn có ảnh, thì không mà nó phải cộng thêm 200xA ( A=0,1,2,3), tức là mỗi một dòng thì nó chèn thêm vào đó A ký tự,