Vor kurzen habe ich die Funktion „Favoriten“ entdeckt. Damit können Bilder leicht gekennzeichnet und bei der Betrachtungsfunktion als Gruppe angezeigt werden.

Das ist vorallem nützlich, wenn man nur eine eingeschränkte Auswahl, der auf der Speicherkarte enthaltenen Bilder, herzeigen möchte. Diese Vorauswahl wird jedoch von den bekannten Bilderverwaltungen nicht berücksichtigt und es werden immer alle Bilder übertragen.

Übertragen der gekennzeichneten Bilder

Da ich diese Funktion sehr gut finde und auch oft verwende, wollte ich auch die Möglichkeit haben die gekennzeichneten Bilder auf den Computer zu übertragen. Dazu habe ich ein Ruby-Programm geschrieben das genau diese Aufgabe erfüllt. Ruby ist auf dem Desktop zwar keine stark verbreitete Programmiersprache, kann aber sehr leicht installiert werden. Natürlich bin ich auch an der Programmiersprache interessiert, sonst währe eine GUI-Anwendung für den Anwender komfortabler.

Verwendung und Ruby-Version

Das Tool ist über die Konsole, egal ob Windows oder Linux, zu bedienen. Es werden dabei immer nur die Dateien übertragen, die seit der letzten Übertragung neu markiert wurden. Der Zielordner muss dabei nicht gleich bleiben. Die Namen der bereits übertragenen Files werden in einem lokalem File gespeichert und bei jeder Übertragung abgeglichen.

Der Aufruf sieht wie folgt aus.

ruby CopyNewFavImg ../fileAufFotoaparat.txt /destination

Bei mir ist die Ruby-Version 1.9.1 installiert, von den verwendeten Funktionen sollten alle schon in 1.8.x enthalten gewesen sein. Extra prüfen konnte ich das jedoch nicht.

Download

Das Programm könnt ihr unter dem folgenden Link herunter laden.

PanasonicParser

Ich weise ausdrücklich darauf hin, das es sich hier um mein erstes Ruby-Programm handelt und ich keinerlei Garantie für das Verhalten des Programmes übernehme.

Carpe diem.

Seit dem letzten Eintrag konnte ich noch ein paar Details zu ImageMagick und C# herausfinden.

Verarbeitung im Speicher

Ein Standardfall ist die Bearbeitung von Bilddaten im Speicher. Imagemagick ist aber auf die Konvertierung von Dateien spezialisiert. In einem beiliegenden Visual Basic Script ist zwar ein Beispielscript enthalten wie das funktionieren könnte, dieses liefert jedoch keine befriedigenden Ergebnisse. Mit VisualBasic.Net erzeugt der gleiche Code, einen Fehler wegen Sicherheitsverletzung bei der Umwandlung von Rückgabedatentypen.

Geschwindigkeit der Konvertierung von PDF zu JPG

Die Geschwindigkeit, bei der Konvertierung, ist im Vergleich mit der API von PDF-Tools nicht überzeugend.

Der Vergleich ist aber auch sehr streng, da die Lösungen von PDF-Tools auf PDF-Umwandlung spezialisiert ist und ImageMagick für einen allgemeinen Einsatz ausgelegt ist. ImageMagick verwendet das Tool „GhostScript“ zum laden der PDF-Files, wo wahrscheinlich auch die meiste Zeit verbleibt.

Fazit

Für Lösungen in denen PDF-Files nicht ständig für die Anzeige konvertiert werden müssen, sondern nur einmalig beim Import, ist ImageMagick sicherlich ausreichend.

Wird ImageMagick schon in anderen Bereichen für Bildkonvertierung verwendet, macht es natürlich Sinn es  auch für die PDF Umwandlung zu verwenden.

Diese Einschätzung bezieht sich ausschließlich auf .Net und C#, für andere Programmiersprachen muss das Verhalten sicher extra geprüft werden.

Auf die Lizenz von GhostScript sollte bei der Verwendung ebenfalls geachtet werden, da GPL nur für die nicht kommerzielle Nutzung gedacht ist.

ImageMagick kann auch mit PDF umgehen, in der Standardinstallation aber nicht. Für PDF Konvertierung muss Ghostscript installiert sein.

Eine ziemlich vollständige Liste findet sich direkt auf der unter ImageMagick.

Es wird hier auch beschrieben wie auf mögliche CropBoxen im PDF Rücksicht genommen werden.

To force ImageMagick to use the CropBox or TrimBox rather than the MediaBox, use -define (e.g. -define pdf:use-cropbox=true or -define pdf:use-trimbox=true). Use -density to improve the appearance of your PDF rendering (e.g. -density 300×300).

Für alle die an der Qualität der Umwandlung interessiert sind, sollten unbedingt den „Density“ Wert setzen. 300×300 steht hier für die stardard Druckqualität von 300DPI.

Bei mehrseitigen PDF-Files wird pro Seite ein Bild erstellt, wobei eine fortlaufende Nummer vergeben wird.

Verwendung von C# mit ImageMagic

ImageMagick kann auch in Verbindung mit C# verwendet werden. Auf CodePlex existiert ein Port mit dem Namen „ImageMagickNet“. Mit der Standardinstallation kann aber auch eine COM+ Componente registriert werden.

Das CodePlex Projekt konnte ich nicht erfolgreich einbinden, mit der COM+ Komponente ging das jedoch sehr leicht.

Im Installationsverzeichnis befindet sich das File „ImageMagickObject.dll“, dieses mit dem Befehl

regsvr32 /c /s Pfad\ImageMagickObject.dll

einbinden.

Im C# Code

Im Projekt muss die COM-Komponente als Verweis eingebunden werden. Danach kann auf die DLL direkt zugegriffen werden.

ImageMagickObject.MagickImageClass img = new ImageMagickObject.MagickImageClass();
Object[] convertParam = {@”E:\Projekte\test.pdf”, @”E:\Projekte\test.jpg”};
Object test = img.Convert(ref convertParam);

Die Parameter sind hier die gleichen wie in der Command Line.

© 2010 Digitales Umfeld Suffusion WordPress theme by Sayontan Sinha