Guten Tag zusammen
mit diesem Code
Delphi-Quellcode:
var
y, x: integer;
P, P2: PRGBTriple;
// PRGBQuad def. in Unit Windows;
CountFalsePixel, FirstTickCount: Integer;
aRect: TRect;
MemBmp: TBitmap;
begin
CountFalsePixel := 0;
FirstTickCount := GetTickCount;
// Bitmaps vergleichen
for y := 0
to Bitm1.Height - 1
do
begin
P := Bitm1.ScanLine[y];
P2 := Bitm2.ScanLine[y];
for x := 0
to Bitm1.Width - 1
do
begin
if RGB(P^.rgbtRed, P^.rgbtGreen, P^.rgbtBlue) <>
RGB(P2^.rgbtRed, P2^.rgbtGreen, P2^.rgbtBlue)
then
begin
Inc(CountFalsePixel);
end;
Inc(P);
Inc(P2);
end;
end;
ShowMessage('
Das Ausführen dauerte '+IntToStr(GetTickCount - FirstTickCount)+'
Ticks'+
chr(13)+'
Unterschiede: '+inttostr(CountFalsePixel));
end;
vergleiche ich recht flott 2 bitmaps (bei grösse 1024 x 768 dauert dass ca 30 ticks) nun möchte ich
die unterschiedlichen pixel mit ihrer information also posx, posy und farbe platzsparend speichern
(stream). Bei meinen bisherigen versuchen wurde der stream bei völlig unterschiedlichen Bildern grösser als dass eigentliche bitmap.
wenn sich das Bild sagen wir um 400000 pixel unterscheidet bei gesamtpixel von 786432 möchte ich mit
10 - 15kb grösse auskommen
ist das möglich
wenn ja wie
Danke für eure Hilfe