Einzelnen Beitrag anzeigen

iphi

Registriert seit: 13. Feb 2009
266 Beiträge
 
Delphi 7 Personal
 
#7

AW: Wie schwarz-weiß Canvas effizient befüllen?

  Alt 29. Dez 2024, 16:55
Bei mir geht es jetzt so:
Delphi-Quellcode:
procedure TForm1.DrawLinesFast(l: TLines);
var
  bm: TBitmap;
  i: Integer;
  w,h: integer;
  p: pointer;
begin
  h:=length(l);
  if h=0 then exit;
  w:=length(l[0].b);
  if w=0 then exit;
  bm := TBitmap.Create;
  Try
    bm.PixelFormat := pf1bit;
    bm.Width:=w*8;
    bm.Height:=h;
    bm.Canvas.Refresh;
    for i:=0 to h-1 do
      begin
        p:=bm.ScanLine[i];
        move(l[i].b[0],p^,w);
      end;
    Im.Picture.Assign(bm);
  Finally
    bm.Free;
  End;
end;
Eine Sache wundert mich: Die Zeilen sind im Speicher umgekehrt angeordnet, d.h. die unterste Zeile mit der höchsten Zeilennummer steht an der niedrigsten Speicheradresse.
  Mit Zitat antworten Zitat