Ja äh...
ich hätts - in meiner grandiosen booleschen unbedarftheit - halt so gemacht:
Delphi-Quellcode:
var
Old, New, Result: TBitmap;
Alpha: Array of Boolean;
PtrOld, PrtNew: Pointer;
x,y: Integer;
begin
for y := 0 to Old.Height-1 do
begin
ptrOld := Old.Scanline[y];
ptrNew := New.Scanline[y];
for x := 0 to Old.Width-1 do
begin
if TColor(PtrOld^) = TColor(PtrNew^) then
begin
Alpha[x,y] := 0;
Result.Pixels[x,y] := clBlack; //war zu faul da noch mal rumscanzulinen.... sollte man aber! Bringt einiges an Performance!
end
else
begin
Alpha[x,y] := 1;
Result.Pixels[x,y] := TColor(PtrNew^);
end;
Inc(PtrOld);
Inc(PtrNew);
end;
end;
end;
du kannst dann aus der Alphamaske und den Farbwerten ein PNG-Bild machen.
Lukas Erlacher
Suche Grafiktablett. Spenden/Gebrauchtangebote willkommen.
Gotteskrieger gesucht!
For it is the chief characteristic of the religion of science that it works. - Isaac Asimov, Foundation I, Buch 1