Einzelnen Beitrag anzeigen

xaromz

Registriert seit: 18. Mär 2005
1.682 Beiträge
 
Delphi 2006 Enterprise
 
#7

Re: Pixels vs. Scanline. Seltsames Ergebnis...

  Alt 9. Nov 2005, 18:14
Hallo,
Zitat von Flips:
Wie jetzt? Mit einer Scanline das ganze Bild durchgehen?
(Bin heute ned gut im Kopf, bin extrem müde :pale: )

[edit]Achso, du meinst von hinten anfangen oder wie? :gruebel: [/edit]
ist doch ganz einfach:
Delphi-Quellcode:
var
  P: PByteArray;
  C: Integer;
begin
  P := Bitmap1.ScanLine[Bitmap1.Height - 1];
  for C := 0 to Bitmap1.Width * Bitmap1.Height - 1 do
    P[C] := Random(255);
end;
Damit füllst Du ein Bitmap mit Zufallsfarben. Dabei ist das Bitmap allerdings 8 Bit. Bei 24 Bit wird's schwieriger: Eine Zeile ist immer an einer Integer-Grenze ausgerichtet. Deshalb muss man z. B. bei einem 13 Pixel breiten Bild bei jeder Zeile 3 Byte addieren. Das geht dann so:
Delphi-Quellcode:
var
  P: PByteArray;
  C: Integer;
  Filler: Byte;
begin
  P := Bitmap1.ScanLine[Bitmap1.Height - 1];
  Filler := 4 - (Bitmap.Width mod 4);
  for C := 0 to ((Bitmap1.Width + Filler) * Bitmap1.Height) * 3 - 1 do
    P[C] := Random(255);
end;
Gruß
xaromz
  Mit Zitat antworten Zitat