Einzelnen Beitrag anzeigen

Der_Unwissende

Registriert seit: 13. Dez 2003
Ort: Berlin
1.756 Beiträge
 
#2

Re: Bilder vergleichen unterschiede platzsparend abspeichern

  Alt 3. Nov 2005, 09:11
Hi,
also ohne jetzt sehr detailiert drüber nachgedacht zu haben, mal zwei Ansätze. Als erstes könntest du (wenig optimiert) einfach eine 1024x768 Matrix anlegen, die an jeder Stelle nur speichert ob sich ein Pixel unterscheidet oder nicht (also boolsch).
Optimaler ist es aber, das ganze als Liste zu verwalten.
Wieder der weniger Platzsparende Weg (aber perfomanter) wäre es, sich einfach ein Array der Größe 768 anzulegen und für jede Zeile Tupel zu speichern. Dabei steht in jedem Tupel das Paar x1, x2 wobei natürlich jede Zeile des Arrays = Zeile deiner Bitmap ist und jedes Tupel die Start- und Endkoordinate der sich unterscheidenden Pixel angibt. Wenn diese benachbart sind, sparst du so schon etwas platz.
Eine optimiertere Möglichkeit was den Platz angeht wäre es dann natürlich nur noch die Zeilen (mit Index der Zeile) zu speichern, die wirklich Pixel enthalten, die sich unterscheiden.

Hm, sollten die aber sehr gut verteilt liegen wird es schwierig deine Grenze einzuhalten. Du hättest ansonsten das Problem, dass eine Bitmatrix (z.B. als gesetzte oder nicht gesetze Bits von 32 Integers pro Zeile) zu einer 768*32*4 Byte Matrix führen würde = ca. 98 KByte (wenn ich mich nicht verrechnet habe.

Gruß Der Unwissende
  Mit Zitat antworten Zitat