Miten hBitmap:n(CBitmap)saa konvertoitua RGB bittikartaksi? (niin pixeli kerrallaan voi piirtää kuvan vaikka Javalla?)
HBITMAP vaikuttaa olevan "pointerin pointeri", joten miten sen sisällön voisi esim. dumpata?
C -koodi:
#include
....
HBITMAP hBitmap;
BYTE px[] =
{
0x00,0xFF,0x00,0xFF,0x00,0xFF ,
0x00,0xFF,0x00,0xFF,0x00,0xFF ,
0xFF,0x00,0xFF,0x00,0xFF,0x00 ,
0x00,0xFF,0x00,0xFF,0x00,0xFF
};
hBitmap = CreateBitmap(48 , 4 , 1 , 1 , px);
Onko tälle vastaavasti käänteistä funktiota, joka muuttaa hBitmap:n muistiin taulukoksi?
(Alkuperäinen ongelma on että minulla on vain hBitmap handle, ja se pitäisi saada jotenkin RGB bitmap:ksi)
HBITMAP vaikuttaa olevan "pointerin pointeri", joten miten sen sisällön voisi esim. dumpata?
C -koodi:
#include
....
HBITMAP hBitmap;
BYTE px[] =
{
0x00,0xFF,0x00,0xFF,0x00,0xFF ,
0x00,0xFF,0x00,0xFF,0x00,0xFF ,
0xFF,0x00,0xFF,0x00,0xFF,0x00 ,
0x00,0xFF,0x00,0xFF,0x00,0xFF
};
hBitmap = CreateBitmap(48 , 4 , 1 , 1 , px);
Onko tälle vastaavasti käänteistä funktiota, joka muuttaa hBitmap:n muistiin taulukoksi?
(Alkuperäinen ongelma on että minulla on vain hBitmap handle, ja se pitäisi saada jotenkin RGB bitmap:ksi)
Vastaukset 3
Vanhimmat
No lähdekoodis ei oo ainakaan c , joten ehkä haluut käyttää win32 apeja:
GetDIBits kopioi bitmapin sisällön haluttuun paikkaan. Komennon viimeisenä parametrina on värivalinta DIB_RGB_COLORS. SetDIBits -komennolla saa muuteltua bitmapin sisältöä.
Kannattaa varmaan hakea jostain helppitiedostot ni saa parametrit oikein. Jos käytät win32.hlp -tiedostoa ni päivitä se täältä:
http://www.borland.com/devsupport/borlandcpp/patches/BC52HLP1.ZIP
Tarkennoksena vielä edelliseen, löydät siis esim.
http://win32assembly.online.fr/download.html -osoitteesta win32.hlp. Jos ohjeen piirrokset eivät avaudu, lataa päivitys osoitteesta:
http://www.borland.com/devsupport/borlandcpp/patches/BC52HLP1.ZIP.
Parempi vaihtoehto, jos haluat tuoreimmat helpit, olisi käyttää msdn:n helppejä, mut 28 Mt ero verrattuna yli 500 Mt helppeihin on aika suuri.
Kiitos hyvästä vinkistä. Sain tuon GetDIBits:n toimimaan.