Einzelnen Beitrag anzeigen

Benutzerbild von turboPASCAL
turboPASCAL

Registriert seit: 8. Mai 2005
Ort: Sondershausen
4.274 Beiträge
 
Delphi 6 Personal
 
#11

AW: BitMap zeichnen per API

  Alt 28. Nov 2012, 10:35
Eine Möglichkeit könnte ich mir so vorstellen:


Delphi-Quellcode:
var
  theBitmapBitArray: array of dword; // das array vom OleVariant

procedure TForm ...;
var
  theBitmap: HBITMAP;
  pBmpBits: Pointer;
  bi: BITMAPINFO;

  bmpWidth: integer;
  bmpHeight: integer;

begin
  bmpWidth := 320;
  bmpHeight := 240;

  setlength(theBitmapBitArray, bmpWidth * bmpHeight);

  // ----------------------------------------------------------- //

  ZeroMemory(@bi, sizeof(BITMAPINFO));
  with bi.bmiHeader do
  begin
    biSize := sizeof(BITMAPINFOHEADER);
    biWidth := bmpWidth;
    biHeight := -bmpHeight;
    biCompression := BI_RGB;
    biBitCount := 32;
    biPlanes := 1;
    biXPelsPerMeter := 0;
    biYPelsPerMeter := 0;
    biClrUsed := 0;
    biClrImportant := 0;
  end;

  theBitmap := CreateDIBSection(0, bi, DIB_RGB_COLORS, pBmpBits, 0, 0);

  pBmpBits := @theBitmapBitArray[0];

  SetDIBits(0, theBitmap, 0, bi.bmiHeader.biHeight * -1, pBmpBits, bi, DIB_RGB_COLORS);

  image1.Picture.Bitmap.Handle := theBitmap;
  image1.Refresh;
end;
Matti
Meine Software-Projekte - Homepage - Grüße vom Rüsselmops -Mops Mopser

Geändert von turboPASCAL (28. Nov 2012 um 10:52 Uhr)
  Mit Zitat antworten Zitat