Einzelnen Beitrag anzeigen

etom291272

Registriert seit: 16. Feb 2004
Ort: ---
232 Beiträge
 
#6

Re: Bilder vergleichen unterschiede platzsparend abspeichern

  Alt 3. Nov 2005, 13:34
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
  Mit Zitat antworten Zitat