Seite 1 von 1

[gelöst] Änderungen im QImage feststellen.

Verfasst: 18. Mai 2005 10:06
von Marc Schubert
Hallo Zusammen,

wie kann ich feststellen ob sich in einem QImage was geändert hat? Bei meinem Programm werden Bilder per Netzwerk übertragen. Ich möchte nun vermeiden Images zu übertragen in denen sich nichts geändert hat.

Gibt es sowas wie eine Checksummen überprüfung für QImages?

Mit freundlichen Grüßen

Marc Schubert

Verfasst: 18. Mai 2005 10:22
von FlorianBecker
Also bei Qt selber (vielleicht) nicht, aber Qt beinhaltet libz bzw. hat deren Abhängigkeit, da gibts einen CRC und einen Adler32 Check, damit sollte das bestimmt auch gehen, oder? Außerdem kann man ja gleich einige Tests fahren, z.B. Änderungsdatum und Adler32. Wobei du sicherlich auch sowas wie md5 nehmen kannst.

Verfasst: 18. Mai 2005 11:10
von Christian81
Wenn man die Qt-Sourcen hat (es reichen die qmake-sourcen), ist eine Datei qtmd5.cpp/.h dabei (qt-3/qmake), welche md5-Funktionalität bereitstellt.

[gelöst] Änderungen im QImage feststellen

Verfasst: 20. Mai 2005 16:02
von Marc Schubert
Hallo,

und danke für die Typs. Ich verwede jetzt Adler32 da dies nur eine einfach Funktion ist war sie sehr einfach einzubinden.

Für alle die das auch mal brauchen könnten ein kleiner schnipsel

Code: Alles auswählen

Q_UINT32 returnAdler32( unsigned char *buf, int len)
{
   unsigned long s1 = 1;
   unsigned long s2 = 0;
   
   for (int n = 0; n < len; n++)
   {
      s1 = (s1 + buf[n]) % 65521;  /* größte primzahl kleiner als 65536 */
      s2 = (s2 + s1) % 65521;
   }
   
   return( (s2 << 16) + s1 );
} 
Mit freundlichen Gruß

Marc Schubert