Zitat:
Selbst wenn es ein Bild mit nur 256 Farben ist, wäre das ein Byte pro Pixel, bei 400000 Pixeln also 400000 Byte ~ 390 kiB. Vielleicht kriegst du das Verlustfrei (Bzip2) auf 15 kiB zusammengeschrumpft,
die idee mit den 256 farben gefällt mir bei meinem test wo sich ca 1/3 des schirms ändert beträgt der stream nur noch 210 kb gezippt dann 8kb
Aber
ich mache noch einen fehler wie ich die farben abspeichere.
ich versuche über scanline einen zeiger auf die linie zu erhalten und lese dann jeden teil des arrays (was ja dann eigentlich das byte sein müsste aus)
Delphi-Quellcode:
P, P2: PByteArray;
...
for x := 0 to Bitm1.Width - 1 do
begin
if (P[x] <> P2[x]) then
begin
Inc(CountFalsePixel);
Inc(aLauf);
Daten[aLauf].Farbe:= P2[x];
...
in daten i sind dann auch werte zwischen 0 und 255 aber ich fürchte dass entspricht nicht der farbe
in anderes bitmap einlesen dann so
Delphi-Quellcode:
for i:=0 to 200000 do //Length(Daten) -1 do
begin
inc(AktSpalte);
Image2.Picture.Bitmap.Canvas.Pixels[AktZeile,AktSpalte]:=Daten[i].Farbe;
if AktSpalte = 100 then inc(AktZeile);
if AktSpalte>100 then AktSpalte:=-1;
end;
ShowMessage('fertig'+' Anzahl Items Liste: '+inttostr(ListBox1.Items.Count));
er zeichnet zwar aber nur rot
kann man nur mit einem byte eine farbe bei einem pf8bit bitmap abspeichern