type
ULONG_PTR = Cardinal;
TPsucHandle = ULONG_PTR;
function Bitmap2LCD(Psuc_Handle: TPsucHandle; Bitmap: TBitmap): integer;
var
bmp: tagBitmap;
Frame2LCDResult: integer;
begin
Result := 0;
if not assigned(Bitmap)
then
begin
Result := -1;
// Bitmap ist nicht vorhanden/erstellt
exit;
end;
if not ((Bitmap.Width = 128)
and (Bitmap.Height = 64))
then
begin
Result := -2;
// Bitmapgroesse stimmt nicht
exit;
end;
if Bitmap.PixelFormat <> pf24Bit
then // nur RGB zulassen
Bitmap.PixelFormat := pf24Bit;
if Bitmap.HandleType <> bmDIB
then // nur DIB-Format zulassen
Bitmap.HandleType := bmDIB;
ZeroMemory(@bmp, sizeof(tagBitmap));
GetObject(Bitmap.Handle, sizeof(tagBitmap), @bmp);
Frame2LCDResult := PSUC_Frame2LCD(Psuc_Handle, bmp.bmBits, 64 * 128 * 3);
// ImageSize = Höhe = 64 * Breite = 128 * RGB=3
// if Frame2LCDResult <> 0 then // hier Fehler auswerten siehe Docu.
// Result := -3; // Bitmap(roh)daten konnten nicht übertragen werden
end;