PDA

View Full Version : مقاله: Bitmap Decode



Hamid_VB
جمعه 03 مهر 1388, 01:03 صبح
سلام ،
فایل های Bitmap شامل دو قسمت هستند ، قسمت اول که Header فایله و مشخصات فایل مثل پهنا ، ارتفاع ، تعداد بیت های رنگ و... رو داره.
در قسمت Header دو سرآیند قزاز دارند اولی BITMAPFILEHEADER و دومی BITMAPINFOHEADER که اولی شامل اطلاعات فایل و دومی شامل اطلاعات تصویر Bitmap هستند ، بعد از این دو سرایند رنگ پیکسلها شروع میشند و به تعداد پهنا ضرب در ارتفاع عکس پیکسل توی فایل وجود داره:

struct BITMAPFILEHEADER{
int bfType;
long bfSize;
int bfReserved1;
int bfReserved2;
long bfOffBits;
};


struct BITMAPINFOHEADER { //40 bytes
long biSize;
long biWidth;
long biHeight;
int biPlanes;
int biBitCount;
long biCompression;
long biSizeImage;
long biXPelsPerMeter;
long biYPelsPerMeter;
long biClrUsed;
long biClrImportant;
};

برای خوندن رنگ ها فقط کافیه برای هر پیکسل یه بار سرایند RGBTRIPLE خونده بشه و با دستور RGB مقدار rgb رنگ رو به Colorref تغییر داد.


struct RGBTRIPLE{
char rgbtBlue;
char rgbtGreen;
char rgbtRed;
};