Als Beweis, das ich die Pixel verändert habe, zeichne ich das Bild nochmal Pixel für Pixel.
Das es den Alphaknal nicht mit zeichnet, die ist ein bekanntes Problem, aber um dies geht es hier nicht.
Siehe Anhang.
Wieso habe ich diesen komischen Effekt ?
Code: Alles auswählen
procedure TForm1.Button2Click(Sender: TObject);
var
Bit: TPicture;
x, y: integer;
begin
Bit := TPicture.Create;
Bit.LoadFromFile('project1.ico');
for x := 1 to 30 do begin
for y := 1 to 30 do begin
Bit.Bitmap.Canvas.Pixels[x, y] := Random($FFFFFF);
end;
end;
Canvas.Draw(0, 0, Bit.Bitmap); // Es wird unverändert gezeichnet.
for x := 0 to Bit.Width - 1 do begin
for y := 0 to Bit.Height - 1 do begin
Canvas.Pixels[x, y + Bit.Height] := Bit.Bitmap.Canvas.Pixels[x, y];
end;
end;
Bit.Free;
end;