Rubrik: Grafik und Font · Bilder & Icons | VB-Versionen: VB6 | 12.10.06 |
Vergleich von Bildern Über das PropertyBag-Objekt lässt sich schnell und einfach prüfen, ob zwei Bilder identisch sind. | ||
Autor: Dietrich Herrmann | Bewertung: | Views: 15.237 |
ohne Homepage | System: Win9x, WinNT, Win2k, WinXP, Win7, Win8, Win10, Win11 | Beispielprojekt auf CD |
Vergleich von Bildern (aus dem Tipp Prüfen, ob zwei Bilder identisch sind)
Geändert für die Benutzung mit Objekten StdPicture.
Die im genannten Tipp gezeigte Prozedur habe ich dahingehend verändert, dass man nicht zwei Pictureboxen mit den zu vergleichenden Bildern laden muss, sondern das Ganze über den Speicher abarbeitet unter Verwendung von StdPicture-Objekten.
Im aufrufenden Programm müssen folgende Vereinbarungen und Ladebefehle stehen:
Dim Pic1 As StdPicture Dim Pic2 As StdPicture Dim bResult as Boolean ' "Bild1" und "Bild2" müssen gültige Pfad- und ' Dateiangaben enthalten Set Pic1 = LoadPicture(Bild1) Set Pic2 = LoadPicture(Bild2) ' Aufruf der Funktion ' Rückgabewert "True" bei Gleichheit der Bilder ' "False", wenn sich die Bilder unterscheiden bResult = PicCompare(Pic1, Pic2)
Und hier die geänderte Funktion:
' Zwei Bilder miteinander vergleichen ' unter Verwendung des PropertyBag-Objekts, ' ohne Verwendung von Pictureboxen! ' Rückgabewert: True, wenn Bilder identisch ' False, wenn Bilder unterschiedlich ' Public Function PicCompare(Pic1 As StdPicture, Pic2 As StdPicture) As Boolean Dim myPropBag As PropertyBag Dim vContents1 As Variant Dim vContents2 As Variant DoEvents ' 1. Bild speichern und Inhalt zwischenspeichern Set myPropBag = New PropertyBag With myPropBag .WriteProperty "Picture", Pic1 vContents1 = .Contents End With ' 2. Bild speichern und Inhalt zwischenspeichern Set myPropBag = New PropertyBag With myPropBag .WriteProperty "Picture", Pic2 vContents2 = .Contents End With ' Bilder vergleichen PicCompare = (CStr(vContents1) = CStr(vContents2)) Erase vContents1 Erase vContents2 Set myPropBag = Nothing End Function