2004. január 31., szombat

Create a TBitmap from a two-dimensional array of byte


Problem/Question/Abstract:

Is there an easy way of converting a two dimensional array of byte to a bitmap?

Answer:

Depending on your PixelFormat (example is for 8 bit bitmap)...

{ ... }
var
  Ptr: ^Byte; {for 8 bit PixelFormat}
begin
  NewBitmap := TBitmap.Create;
  NewBitmap.PixelFormat := pf8bit;
  NewBitmap.Height := High(PixelArray); { assumes Low(PixelArray) = 0; }
  NewBitmap.Width := High(PixelArray[0]); { assumes Low(PixelArray[0]) = 0; }
  for y := 0 to NewBitmap.Height - 1 do
  begin
    Ptr := NewBitmap.ScanLine[y];
    for x := 0 to NewBitmap.Width - 1 do
    begin
      Ptr^ := PixelArray[y, x];
      Inc(Ptr);
    end;
  end;
end;

Nincsenek megjegyzések:

Megjegyzés küldése