Aufgabe

ImgResizer wandelt BMP, JPG, PNG und TIF-Bilddateien in JPG-Dateien. Zugleich kann die Bildgröße, der Gammawert, die Bildschärfe und die Dateigröße angepaßt werden. Letzteres kann entweder über den Komprimierungsfaktor oder über einer zulässigen Farbabweichung gesteuert werden. ImgResizer ist als Shell-Extension realisiert und wird vom Microsoft-Explorer in den Eigenschaftenseiten für Verzeichnisse bereitgestellt.

Installation

Die Shell-Extension besteht aus der Datei „ImgrExt.dll“ und kann in ein beliebiges Verzeichnis abgelegt werden, z.B.

c:\windows\system32\ShellExt\ImgrExt\

Damit der Microsoft-Explorer die Shell-Extension anbietet, wird eine Registrierung von „ImgrExt.dll“ erforderlich. Die Registrierung erfolgt über die DOS-Konsole mit dem Programm „RegSvr32.exe“.

regsvr32.exe c:\windows\system32\ShellExt\ImgrExt\imgrext.dll

Die Registrierung kann mit dem folgenden Befehl wieder rückgängig gemacht werden.

regsvr32.exe -u c:\windows\system32\ShellExt\ImgrExt\imgrext.dll

Registry

Mit der Registrierung werden nachfolgende Einträge in der Registry-Datenbank angelegt. Diese Einträge können mit dem Programm „RegEdit.exe“ angezeigt werden. Da man mit diesem Programm Einträge auch ändern und löschen kann, sollte man hier etwas vorsichtig umgehen.

Folgende Einträge registrieren die Shell-Extension.

     Pfad: HKEY_CLASSES_ROOT\ImgrExt.ShellExtension\
  Eintrag: (Standard) = ImgrExt.ShellExtension
     Pfad: HKEY_CLASSES_ROOT\ImgrExt.ShellExtension\CLSID\
  Eintrag: (Standard) = {F2738166-D794-4411-A0F2-0D403DE33674}
     Pfad: HKEY_CLASSES_ROOT\CLSID\{F2738166-D794-4411-A0F2-0D403DE33674}\
  Eintrag: (Standard) = ImgrExt.ShellExtension
     Pfad: HKEY_CLASSES_ROOT\CLSID\{F2738166-D794-4411-A0F2-0D403DE33674}\InProcServer32\
  Eintrag: (Standard) = c:\windows\system32\ShellExt\ImgrExt\imgrext.dll
  Eintrag: ThreadingModel = Apartment
     Pfad: HKEY_CLASSES_ROOT\CLSID\{F2738166-D794-4411-A0F2-0D403DE33674}\ProgID\
  Eintrag: (Standard) = ImgrExt.ShellExtension
     Pfad: HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Shell Extensions\Approved\
  Eintrag: ImgrExt.ShellExtension = {F2738166-D794-4411-A0F2-0D403DE33674}

Durch die folgenden Einträge wird die Shell-Extension für Verzeichnisse bereitgestellt.

     Pfad: HKEY_CLASSES_ROOT\Directory\shellex\PropertySheetHandlers\ImgrExt.ShellExtension\
  Eintrag: (Standard) = {F2738166-D794-4411-A0F2-0D403DE33674}

In der Registry-Datenbank werden die Einstellungen der Eigenschaftenseite beim Schließen gespeichert. Beim Öffnen werden die Einstellungen der Eigenschaftenseite über diese Einträge wieder vorbelegt.

Pfad: HKEY_CLASSES_ROOT\CLSID{F2738166-D794-4411-A0F2-0D403DE33674}\Settings\
Eintrag: OptDestSubDir = "imgr"
Eintrag: OptLogFile = 0x00000001 (1)
Eintrag: OptCompareType = 0x00000000 (0)
Eintrag: OptDestSize = 0x00000001 (1)
Eintrag: OptGamma = 0x00000001 (1)
Eintrag: OptSharpen = 0x00000001 (1)
Eintrag: DestSize = 0x00000258 (600)
Eintrag: Gamma = 0x000003e8 (1000)
Eintrag: Sharpen = 0x000003e8 (1000)
Eintrag: Quality = 0x0000005a (90)
Eintrag: FileSize = 0x00000050 (80)
Eintrag: AvgDif = 0x0000000a (10)
Eintrag: MaxDif = 0x00000064 (100)

Konfiguration

Mit Abschluß der Registrierung erscheint ein Konfigurationsdialog. Hier können Dateiextensionen vorgegeben werden, die mit dieser Shell-Extension bearbeitet werden sollen. Falls hier keine Eintragungen erfolgen, werden keine Dateiextensionen berücksichtigt. Durch erneutes Starten mit „RegSvr32.exe“ kann diese Liste bearbeitet werden.

Nach Eingabe einer Extension wird mit der Schaltfläche „Hinzufügen“ die Extension in die Liste übernommen.

Nach Anwahl eines Eintrages in der Liste wird mit der Schaltfläche „Löschen“ die Extension aus der Liste entfernt.

Mit der Schaltfläche „Registrieren“ wird die Registrierung der Shell-Extension abgeschlossen.

Die in der Liste vorhandenen Extensionen werden in der Registry an folgender Stelle abgelegt

Pfad: HKEY_CLASSES_ROOT\CLSID{F2738166-D794-4411-A0F2-0D403DE33674}\SupportedTypes\
Eintrag: bmp = ""
Eintrag: jpeg = ""
Eintrag: jpg = ""
Eintrag: png = ""
Eintrag: tif = ""

Anwendung

Nach der Registrierung sollte sich ImgResize im Eigenschaften-Dialog für Verzeichnisse zeigen. Wurden Dateiextensionen in die Konfigurationsliste eingetragen, erscheint die Eigenschaftenseite von ImgResize nur, wenn mindestens eine Datei eine Dateiextension hat, die mit einem Eintrag aus der Konfigurationsliste übereinstimmt.

Mit der Optionsschaltfläche „Abmessung“ werden bei Anwahl die Größe der Bilder durch Verkleinerung/Vergrößerung angepaßt. Der Vorgabewert bezieht sich immer auf die längere Bildkante. Die kürzere Bildkante wird unter Einhaltung des Seitenverhältnisses berechnet.

Mit der Optionsschaltfläche „Gamma“ werden bei Anwahl die Gammawerte der Bilder angepaßt. Ein Vorgabewert von 1000 führt zu keiner Änderung. Kleinere Werte (500-1000) machen das Bild dunkler. Größere Werte (1000-2000) machen das Bild heller.

Mit der Optionsschaltfläche „Schärfe“ wird bei Anwahl die Bildschärfe angepaßt. Ein Vorgabewert von 1000 führt zu keiner Änderung. Kleinere Werte (500-1000) machen das Bild unscharf. Größere Werte (1000-2000) erhöhen die Bildschärfe. Werden die Bildabmessungen verringert, ist in der Regel eine Erhöhung der Bildschärfe (1100-1300) erforderlich.

Mit der Optionsschaltfläche „Qualität“ werden die Bilder entsprechend komprimiert gespeichert. Kleine Vorgabewerte führen zu einer hohen Komprimierung, schlechter Bildqualität und niedrige Dateigrößen. Große Vorgabewerte führen zu einer geringen Komprimierung, guter Bildqualität und hohe Dateigrößen.

Mit der Optionsschaltfläche „Dateigröße“ wird durch entsprechende Komprimierung mehrfach versucht, die Dateigröße annähernd zu erreichen. Die Vorgabe erfolgt in KiloByte.

Mit der Optionsschaltfläche „Avg. Abw.“ wird durch entsprechende Komprimierung mehrfach versucht, die Datei nur soweit zu komprimieren, ohne eine durchschnittliche Abweichung der Rot/Grün/Blau-Werte zu überschreiten. Die Vorgabe erfolgt in ProMille.

Mit der Optionsschaltfläche „Max. Abw.“ wird durch entsprechende Komprimierung mehrfach versucht, die Datei nur soweit zu komprimieren, ohne die maximale Abweichung eines Rot/Grün/Blau-Wertes zu überschreiten. Die Vorgabe erfolgt in ProMille.

Mit Betätigen der Schaltfläche „Ausführen“ wird die Bildwandlung gestartet. Es wird ein Unterverzeichnis „Imgr“ angelegt. In diesem Unterverzeichnis werden die Bilddateien gespeichert.
Falls dieses Verzeichnis bereits vorhanden ist, werden alle Dateien in diesem Verzeichnis zuerst gelöscht, bevor die neuen Dateien dort gespeichert werden.

Die Grafik gibt die Verteilung der Bildpunkte über ihrer Farbabweichnung im Bereich von +/- 7.5% für jede Grundfarbe aus. Im Bild oben haben ca. 25% der Bildpunkte der erzeugten Bilddatei keine Farbabweichnung zur Originaldatei. Der Fortschrittsbalken gibt Aufschluß über die Ermittlung und Annäherung des Komprimierungsfaktors.

Mit der Optionsschaltfläche „Loggen“ werden bei Anwahl die Aktionen in eine Textdatei „ImgrExt.Log“ mitgeschrieben. Die Datei befindet sich dann im Betriebssystemverzeichnis.

Mit der Schaltfläche „Löschen“ wird die Logger-Datei gelöscht.

Mit der Schaltfläche „Anzeigen“ wird die Logger-Datei in einem Texteditor angezeigt.

Erweiterung mit Version 1.0.0.2
Mit der Optionsschaltfläche „Automatik“ wird die Qualität über den Schnittpunkt von Dateigröße und maximaler Abweichung bestimmt.

Änderung mit Version 1.0.0.2
Maximale Abweichung wird als Summe der maximalen Rot-, Grün- und Blau-Abweichnungen angezeigt.

Download

Die Datei „ImgrExt.dll“ benötigt die Datei „MFC42.DLL“, die nicht unbedingt auf jedem System vorhanden ist. In den meisten Fällen wurde diese Datei durch andere Programmpakete bereits installiert.

Auf der Web-Site von Microsoft wird diese Datei über ein Installations-Paket mit redistributierbaren Dateien zum Download angeboten (
VC6RedistSetup_deu.exe ). Sollte dieser Link nicht mehr aktuell sein, hilft eine Suche im Download-Bereich mit dem Suchbegriff „Redist“, Betriebsystem „Windows NT“ und „Zeige alle verfügbare Downloads“.

Weiterhin benötigt diese Shell-Extension die Dateien „DevIL.dll“ und „ILU.dll“ in der Version 1.6.5. Diese Dateien beinhalten Funktionen zur Bearbeitung von Bilddateien und können unter folgenden Web-Sites heruntergeladen werden.

http://openil.sourceforge.net 
http://www.imagelib.org

Die Dateien „ImgrExt.dll“, „DevIL.dll“ und „ILU.dll“ müssen sich im gleichen Verzeichnis befinden.

Wenn die erforderlichen Dateien installiert sind, sollte ImgResize unter Windows NT/XP funktionieren.

Und hier ist ImgResize als Datei
„ImgrExt.dll“ (65536 Bytes, Version 1.0.0.1)
„ImgrExt.dll“ (69632 Bytes, Version 1.0.0.2) Automatik-Funktion ergänzt

Weitere Dateien: VC6RedistSetup_deu.exe , DevIL-EndUser-1.6.5.zip