Ver Mensaje Individual
  #6  
Antiguo 06-10-2008
oab_boa oab_boa is offline
Registrado
 
Registrado: jul 2008
Posts: 5
Reputación: 0
oab_boa Va por buen camino
gracias

Cita:
Empezado por escafandra Ver Mensaje
Windows trata las imágenes como objetos DIB que son la imagen en memoria de los bmp (de distinta profundidad de color). Las API que usan ongetos DIB trabajan con estas imégenes de memoria.

Hace unos años cree un código para lo que creo que necesitas.

Para convertir un objeto TBitmap a este tipo de objeto analiza este código:

Código:
BITMAPFILEHEADER *FileHeader;
BITMAPINFO       *Info;
void             *Bits;
TMemoryStream    *SMBitmap;
  
SMBitmap = new TMemoryStream;
Bitmap->SaveToStream(SMBitmap);
SMBitmap->Position = 0;
  
FileHeader = (LPBITMAPFILEHEADER)SMBitmap->Memory;
Info = (LPBITMAPINFO)((Byte*)SMBitmap->Memory + sizeof(BITMAPFILEHEADER));
int  nColors = Info->bmiHeader.biClrUsed;
int  colorAlloc = nColors * sizeof(RGBQUAD); // size of color tables

// Info es la imagen del DIB  (BITMAPINFO)
// Esta es la imagen en memoria de los pixels:
Bits = (char*)Info + ((int)Info->bmiHeader.biSize + colorAlloc);
Si lo que buscas es el simple traslado de la Imagen, quizás te baste con las funciones TBitmap.SaveToStream y TBitmap.LoadFromStream.


Espero que sea esto lo que buscas.
Saludos.

Hola escafandra, estuve viendo tu codigo, anda a la perfeccion, muchas gracias!!!!
Responder Con Cita