Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Impresión (https://www.clubdelphi.com/foros/forumdisplay.php?f=4)
-   -   Duda sobre la funcion StretchDIBits (https://www.clubdelphi.com/foros/showthread.php?t=27672)

Javi2 28-11-2005 12:38:30

Duda sobre la funcion StretchDIBits
 
Hola,

Estoy utilizando la función StretchDIBits para imprimir bitmaps en una impresora de tickets. En bastantes casos me imprime la imagen correctamente pero en otros no me hace nada. No se porque me ocurre esto.

¿Alguien me puede dar una explicación lógica sobre el funcionamiento de esta función y por qué falla a veces?

Por si sirve de algo, aquí está el código de la llamada:

Código Delphi [-]
 procedure PrintPicture(ARect : TRect; ABitmap : TBitmap);
 var
   BitmapHeader:  pBitmapInfo;
   BitmapImage :  Pointer;
   HeaderSize  :  DWord;
   ImageSize   :  DWord;
 begin
   GetDIBSizes(ABitMap.Handle, HeaderSize, ImageSize);
   try
     BitMapHeader := AllocMem( HeaderSize );
     BitMapImage := AllocMem( ImageSize );
     GetDIB( ABitMap.Handle, ABitmap.Palette, BitmapHeader^, itmapImage^ );
     StretchDIBits(Printer.Canvas.Handle,
                        0, 0,                             
                        ARect.Right - ARect.Left,        
                        ARect.Bottom - ARect.Top,         
                        0, 0,                             
                        ABitMap.Width, ABitMap.Height,   
                        BitMapImage, BitMapHeader^, DIB_RGB_COLORS, SRCCOPY);
   finally
     FreeMem(BitMapImage, ImageSize);
     FreeMem( BitMapHeader, HeaderSize);
   end;
 end;
Muchas gracias de antemano


La franja horaria es GMT +2. Ahora son las 12:38:20.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi