le trung
Trả lời 16 năm trước
// Trước tiên ta khai báo 4 biến Public như sau:
{
BITMAPFILEHEADER bfHeader;
BITMAPINFOHEADER biHeader;
RGBQUAD Colors[256];
BYTE Data[1000][1000];
}
// Giải thuật đọc ảnh Bitmap (dùng các phương thưc của con trỏ ar) như sau:
{
ar.Read(&bfHeader,sizeof(BITMAPFILEHEADER));
if(bfHeader.bfType!=('M'<<8|'B'))
{
MessageBox(NULL,"khong phai tep BITMAP!","Thong bao",MB_OK);
return;
}
int i,j;BYTE b;
ar.Read(&biHeader,sizeof(BITMAPINFOHEADER));
if(biHeader.biBitCount==8)
{
for(i=0;i<256;i++)
ar.Read(&Colors[i],sizeof(RGBQUAD));
for(i=0;i<biHeader.biHeight;i++)
for(j=0;j<biHeader.biWidth;j++)
{
ar.Read(&b,sizeof(BYTE));
Data[i][j]=b;
}
}
else
{
MessageBox(NULL,"khong xu ly anh khac 256 mau!","Thong bao",MB_OK);
return;
}
}
// Giải thuật hiển thị ảnh Bitmap (dùng phương thức của trỏ pDC) như sau:
{
BYTE b; int i,j;
for(i=0;i<pDoc->biHeader.biHeight;i++)
for(j=0;j<pDoc->biHeader.biWidth;j++)
{
b=pDoc->Data[i][j];
pDC->SetPixel(j,pDoc->biHeader.biHeight-i,RGB(b,b,b));
}
}
hết .
* bạn cần giúp gì về các thuật toán khác cứ mail cho tôi nhé