TImage / Bild aus Handle laden
-
Hallo,
habe ein Handle auf ein Bild und würde es gerne in ein TImage laden.
Image1->Picture->Bitmap->Handle = hImg;
geht aber nicht!!!!
-
Hab nun nen Weg gefunden, ist aber sehr umständlich!!!!
Geht es auch einfacher????Mein Weg:
UCHAR *lpVoid, *pBits; int iBytes; Graphics::TBitmap *pBitmap; LPBITMAPINFOHEADER pHead; lpVoid = (UCHAR *)GlobalLock(hImg); pHead = (LPBITMAPINFOHEADER )lpVoid; iBytes = (pHead->biBitCount*pHead->biWidth) >>3; while(iBytes%4) iBytes++; pBits = lpVoid + sizeof(BITMAPINFOHEADER) + sizeof(RGBQUAD)*m_tw->GetPaletteSize(info); pBitmap = new Graphics::TBitmap; pBitmap->PixelFormat = pf24bit; pBitmap->Width = pHead->biWidth; pBitmap->Height = pHead->biHeight; SetDIBits(pBitmap->Canvas->Handle, pBitmap->Handle, 0, (UINT)pHead->biHeight, pBits, (LPBITMAPINFO)lpVoid, DIB_RGB_COLORS); Image1->Width = info.ImageWidth+10; Image1->Height = info.ImageLength+10; Image1->Picture->Bitmap->Assign(pBitmap); delete pBitmap; GlobalUnlock(lpVoid);
-
IcemanX schrieb:
Hallo,
habe ein Handle auf ein Bild und würde es gerne in ein TImage laden.
Image1->Picture->Bitmap->Handle = hImg;
geht aber nicht!!!!
Wenn hImg vom Typ HBITMAP ist, sollte das gehen!
-
Und, gibt es nun einen einfacheren Weg?
-
Was geht denn genau nicht bei Deiner ersten, einfachen Variante?