Ver Mensaje Individual
  #3  
Antiguo 08-05-2003
joecool joecool is offline
Miembro
 
Registrado: may 2003
Ubicación: Sant Boi - Barcelona
Posts: 15
Reputación: 0
joecool Va por buen camino
No me he explicado bien. Dispongo de un array de datos que contiene la infomación del bitmap en formato RGB con 24 bits/pixel, es decir, cada 3 bytes corresponde a un color RGB. Por otra parte dispongo de la anchura y altura del bitmap y de una estructura BitmapInfoHeader dentro de una BitmapInfo.

Según la Windows SDK la función createDIBitmap dice:

The CreateDIBitmap function creates a device-dependent bitmap (DDB) from a device-independent bitmap (DIB) and, optionally, sets the bitmap bits.

HBITMAP CreateDIBitmap(

HDC hdc, // handle to device context
CONST BITMAPINFOHEADER *lpbmih, // pointer to bitmap size and format data
DWORD fdwInit, // initialization flag
CONST VOID *lpbInit, // pointer to initialization data
CONST BITMAPINFO *lpbmi, // pointer to bitmap color-format data
UINT fuUsage // color-data usage
);

Así que relleno las estructuras y paso el puntero a los datos en el puntero *lpbInit.

La función no me devuelve 0, me devuelve un handle a un bitmap.

Mi pregunta:

Como hago para convertir ese handle a un bitmap en un TBitmap de delphi?

O igual no he comprendido la respuesta que me has dado.

He mirado el código fuente de la función CopyBitmap y creo que trabaja con handles y devuelve otro handle.

Igualmente con las funciones SetDIBits (que creo que lo que hace es rellenar los datos del handle con los de un array de datos, pero que la función createDIBitmap puede hacerlo al tiempo que crea el handle. Las otras funciones copian un rectangulo y un paralelogramo (???) pero siempre trabajan con handles.

Ya tengo un handle. Quizás esté vacío (en caso de que la función CreateDIBitmap solo creara el bitmap a cero) y lo pueda rellenar con las otras funciones. Pero luego necesito verlo con un objeto TImage, TPicture o TBitmap de Delphi.

Gracias por tu interés.
__________________
Disclaimer (no sé cómo se traduce pero los yankis lo ponen en toas partes- Debe ser algo así como me desentiendo de...).
Lo anteriormente expresado es una mera opinión y no está sujeta a garantía de ningún tipo.
Vamos, que es lo que me parece, me ha funcionado o he visto/leido, pero que me funcione a mí no quiere decir que te funcione a tí.
Responder Con Cita