1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58
|
b_aff_lbl = (UCHAR*) malloc (6982*5677 + 1);
MbufGet2d(test,0,0,6982,5677,b_aff_lbl);
HBITMAP hBmp;
hBmp = NULL;
//
DWORD taille;
HDC hDC;
hDC = CreateCompatibleDC(NULL);
BITMAPINFO *bi;
bi = (BITMAPINFO*)malloc(sizeof(BITMAPINFOHEADER) + sizeof (RGBQUAD)*256 );
ZeroMemory(bi,sizeof(BITMAPINFOHEADER) + sizeof (RGBQUAD)*256);
//&bi->bmiColors = (RGBQUAD*)malloc(sizeof (RGBQUAD)*256 );
bi->bmiHeader.biSize = sizeof(BITMAPINFOHEADER);// + sizeof (RGBQUAD)*256;
bi->bmiHeader.biWidth = 6982;
bi->bmiHeader.biHeight = 5677;
bi->bmiHeader.biBitCount = 8;
bi->bmiHeader.biPlanes = 1;
bi->bmiHeader.biCompression = BI_RGB;
bi->bmiHeader.biSizeImage = 6982*5677*1;
bi->bmiHeader.biClrImportant = 256L;
bi->bmiHeader.biClrUsed = 256L;
for (int i = 0 ; i < 256 ; i++ )
{
bi->bmiColors[i].rgbBlue = (unsigned char) i;
bi->bmiColors[i].rgbGreen = (unsigned char) i;
bi->bmiColors[i].rgbRed = (unsigned char) i;
bi->bmiColors[i].rgbReserved = 0;
}
int nColor = 236;
LOGPALETTE *hlogPal;
hlogPal = (LOGPALETTE*)malloc(sizeof(LOGPALETTE) + nColor*sizeof(PALETTEENTRY));
hlogPal->palVersion = 0x300;
hlogPal->palNumEntries = nColor;
for (int i = 0 ; i < nColor ; i++ )
{
hlogPal->palPalEntry[i].peRed = i;
hlogPal->palPalEntry[i].peGreen = i;
hlogPal->palPalEntry[i].peBlue = i;
}
HPALETTE hpal = CreatePalette(hlogPal);
SelectPalette(hDC, hpal, TRUE);
hBmp = CreateCompatibleBitmap (hDC, 6982, 5677);
SetDIBits(hDC, hBmp, 0, bi->bmiHeader.biHeight, b_aff_lbl, bi, DIB_RGB_COLORS);
pictureBox1->Image = Image::FromHbitmap(IntPtr((int)hBmp)); |
Partager