Einzelnen Beitrag anzeigen

Benutzerbild von kwhk
kwhk

Registriert seit: 25. Mär 2009
Ort: Dresden
168 Beiträge
 
Delphi 10.3 Rio
 
#3

AW: BMP ohne TBITMAP anzeigen

  Alt 3. Nov 2016, 15:55
Danke für die Antwort.
Bei den Zuweisungen der beiden Pointer habe ich offenbar etwas verwechselt. Ich habe es nun ausgetauscht, weiterhin kommt der Umwandlungsfehler. Jetzt sieht es so aus
Code:
    lpAnfBmpPic := @(hkBMP.bmPixelArr);
    lpPuBmpPIC := @(hkBMP.bmi);
{}
    StretchDIBits ( Form1.Canvas.Handle,      // DIB-Quelle in ZIEL-Fenster angepaßt
                    10,                // X-Ursprung-Fenster
                    10,                // Y-Ursprung-Fenster
                    960,               // Fenster-Breite
                    600,               // Fenster-Höhe
                    0,                 // X-Ursprung-BMP
                    0,                 // Y-Ursprung-BMP
                    320,               // X-Breite BMP
                    200,               // Y-Höhe  BMP
                    lpAnfBmpPic,       // Anf Bild-Daten in hkBMP+1078
                    lpPuBmpPIC,        // BitMapInfoHeader
                    DIB_RGB_COLORS,    // Die Farb-Tab enthält RGB-Werte
                    SRCCOPY ) ;        // Operation: Quelle => Ziel kopieren
Code:
tagBITMAPINFO = packed record
     bmiHeader: TBitmapInfoHeader;
     bmiColors: array[0..0] of TRGBQuad;
   end;
tagBITMAPINFO habe ich bewusst nicht benutzt, weil durch das darin enthaltene bmiColors-Array der Record um 4 Bytes zu lang war.
Ein Zeiger auf TBitMapInfoHeader ist adressmäßig identisch mit einem Zeiger auf tagBitMapInfo. In meinem Record kommen nach dem BitmapInfoHeader ja sofort die Colors für 256 Farben.
Hartmut
  Mit Zitat antworten Zitat