Zugriff auf BitmapDaten

Antworten
Mathias
Beiträge: 6194
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Zugriff auf BitmapDaten

Beitrag von Mathias »

Wie bekomme ich direkten Zugriff auf die Daten in einer TBitmap ?
Ich lese jetzt jeden Pixel mit Pixels[x, y] aus.

Code: Alles auswählen

var
  tx, ty: integer;
  TexturData1: array of Longword;
 
procedure TForm1.InitScene;
var
  x, y: integer;
  p:Pointer;
begin
  tx := Image1.Picture.Width;
  ty := Image1.Picture.Height;
  SetLength(TexturData1, tx * ty);
  for x := 0 to tx - 1 do for y := 0 to ty - 1 do begin
      TexturData1[y * tx + x] := Image1.Picture.Bitmap.Canvas.Pixels[x, y];
    end;
 
  p:=pointer(TexturData1);
 
//  p:=Pointer(Image1.Picture.Bitmap.);   // Schön währe, wen man direkt zugreifen könnte.
 
  glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, tx, ty, 0, GL_RGBA, GL_UNSIGNED_BYTE, p);// Hier wird der Pointer gebraucht
 
 
 
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot


Antworten