Archiv für die Kategorie „Software“

Photo Resize made easy

Dienstag, 15. Mai 2012

Hat man im Web viel mit Bildern zu arbeitet, weiß man es zu schätzen, wenn man ein einfaches schnelles Programm kennt, das Bilder auf eine bestimmte Größe skalieren kann. Bisher habe ich immer XnView genutzt. Dieses Programm hat die zwei wunderbaren Funktionen “Stapelverarbeitung” (mit dem man verschiedene Aktionen auf mehrere Bilder anwenden kann) und “Stapel-Umbenennen” (der Name spricht für sich selbst).

Es geht aber noch einfacher und schneller. Mit dem Mini-Programm Batch Picture Resize. Das Programm besteht nur aus einer einzigen Datei, es ist keine Installation notwendig. Genau genommen gibt es nicht einmal eine Benutzeroberfläche. Sämtliche Einstellungen werden über den Dateinamen festgelegt. Heißt die Datei z.B. PhotoResize400.exe skaliert das Programm Bilder auf eine maximale Kantenlänge von 400 Pixeln. Um die Bilder festzulegen die skaliert werden sollen, markiert man diese und schiebt sie auf die Datei.

Es lassen sich noch sehr viel mehr Einstellungen festlegen. Dazu hat der Entwickler auf seiner Seite ein kleines Formular das im Anschluss den korrekten Dateinamen für diese Einstellungen angibt.

Den Dateinamen den ich mir zurecht gelegt habe ist: PhotoResize1000ISOQ95.exe

  • skalieren auf 1000 Pixel
  • Original überschreiben
  • zu kleine Bilder auslassen
  • Console nach dem abarbeiten ohne Enter schließen
  • Qualität 95%


Mit WordPress einen Custom-Post-Type Podcast erstellen

Montag, 22. November 2010

Seit Version 3 unterstützt WordPress “Custom-Post-Types“, d.h. neben Artikeln, Seiten, Links und Anhängen können eigene Inhaltstypen definiert werden. Das hat mindestens zwei Vorteile. Dadurch das diese Inhaltstypen getrennt von Artikeln und Seiten sind muss man in seinen Themes nicht umständliche Konstruktionen entwerfen um z.B. Podcast-Einträge wieder von den Artikeln zu trennen – man hat einfache einen Inhaltstyp Podcast. Außerdem lassen sich für zusätzliche Inhaltstypen eigenständige Eingabemasken erstellen, so dass der Administrator bei der Eingabe dieser Einträge besser angeleitet wird.

Für die Internetseite einer christlichen Gemeinde habe ich die custom-post-type-Funktionalität genutzt um einen Podcast mit den letzten Predigten zu erstellen. Im Großen und Ganzen ist das Erstellen solcher spezifischen Inhaltstypen recht einfach, in der Dokumentation ist die Funktionalität mit Beispielen erklärt. Es gibt jedoch ein paar Ecken an denen es dennoch klemmt, eine möchte ich hier vorstellen.

Basics zu custom-post-types

Um einen Custom-Post-Type, also einen eigenen Inhaltstype, zu erstellen muss die Funktion “register_post_type” verwendet werden. Hiermit habe ich den neuen Podcast-Inhaltstyp von “post” abgeleitet. Außerdem habe ich festgelegt das nur Titel und Editor angezeigt werden sollen. Gute Tutorials zum grundlegenden Erstellen von Custom-Post-Types findet man im Codex, sowie hier und hier.

Um einen Audioplayer auf der Ausgabeseite einzubinden habe ich das Plugin “Audio player” von Martin Laine genutzt. Durch das Plugin lässt sich folgender Shortcode im Editorfeld einbinden. An der Stelle an der dieser Codeschnipsel eingefügt wird, wird im veröffentlichten Eintrag dann ein Audio-Player erscheinen und das Abspielen direkt von der Website ermöglichen.

[ audio:<url>|<title>]

Hinweis: Vorsicht, das Audio-Player-Plugin unterstützt keine Umlaute.

Die Anzeige und Auflistung der Podcast-Einträge lässt sich relativ einfach bewerkstelligen (Tutorial hier). Womit es allerdings Probleme gab war der Podcast-Feed.

Problem mit der RSS-/Podcast-Funktionalität

Wesentlicher Bestandteil eines Podcasts ist die Möglichkeit ihn zu abonnieren und sich auf einem beliebigen Feed-Reader (z.B. IPhone, Google Reader, IPod, …) anhören zu können. Jedesmal wenn ein neuer Podcast-Eintrag veröffentlicht wird bekommen die Abonnenten diesen dann via RSS-Feed sofort zugestellt.

Damit die Einträge in einem RSS-Feed erscheinen habe ich einen Action-Hook in der Anfrage-Funktion genutzt.

[php]
//simple podcast functionality
//podcast avalable under /feed?sermons_podcast=1
function myfeed_request($arg) {
if (isset($arg['feed']) && !empty($_REQUEST['sermons_podcast'])) {
$arg['post_type'] = array(‘sermons’);
}
return $arg;
}
add_filter(‘request’, ‘myfeed_request’);
[/php]

Die Funktion wird bei jeder Anfrage nach Einträgen ausgeführt und ermöglicht es die Anfrageparameter ($arg) zu verändern. Ich überprüfe in der Funktion ob gerade ein Feed angefragt wird. Wurde an die Feed-Url die Variable “sermons_podcast” angehängt, lasse ich nur noch Einträge vom Typ “sermons” ausgeben.

Soweit so gut, die Einträge sind nun unter “<url>/feed?sermons_podcast=1” verfügbar, damit ein richtiger Podcast daraus wird, müssen die Audiodateien aber in einem bestimmten XML-Element (<enclosure url=”” lenght=”” type=”audio/mpeg” />) des RSS-Feeds angegeben sein.

In normalen Artikeln nimmt WordPress diesen Eintrag selbstständig vor, bei Custom-Post-Types jedoch nicht. Ich musste lange suchen bis ich heraus bekam wie WordPress den Eintrag im RSS-Feed erstellt.

Beim Veröffentlichen eines Artikels überprüft WordPress standardmäßig ob im Eintrag auf eine Multimedia-Datei verlinkt wird. Wenn dem so ist wird ein Eintrag in den benutzerdefinierten Feldern (custom-post-data) des Eintrags hinterlassen, der die URL, die Länge und den Mime-Type der Datei in je einer Zeile enthält.

Bei der Ausgabe des Feeds überprüft WordPress dann ob eine Eintrag “enclosure” in den benutzerdefinierten Feldern hinterlassen wurde und fügt bei Bedarf das XML-Element (siehe oben) ein. Alle gängigen Feed-Reader verstehen das enclosure-Element als abgehangene Datei und binden es mit einem ensprechendem Player ein.

Um die enclosure-Funktionalität auch in den Custom-Post-Types verfügbar zu machen nutzte ich die Standardfunktion und fügte sie beim Speichern von Custom-Post-Types ein.

[php]
/**
* enclosure-fix
* For some reason wordpress dont filter the enclosures out of custom post types and saved them into the meta.
* So we do that in the following lines.
*/
add_action(‘edit_post’, ‘sermons_enclosurefix’);
add_action(‘save_post’, ‘sermons_enclosurefix’);
function sermons_enclosurefix($post_ID) {
global $post;
if($post->post_type==’sermons’) {
do_enclose($post->post_content, $post->ID);
}
}
[/php]
Das dieser umständliche Weg überhaupt nötig ist verwundert mich etwas, denn der Podcasts ist eines der Standardbeispiel für Custom-Post-Types. Vielleicht wird die Funktionalität der Enclosures in Custom-Post-Types im kommenden WordPress 3.1 nachgerüstet.



Daten sichern leicht gemacht

Dienstag, 21. September 2010

Wer sicher gehen möchte, dass man nach einem Festplatten-Crash nicht alle Daten, Dokumente und Bilder verloren hat, muss diese hin und wieder sichern. Seit etwa einem halben Jahr setze ich dazu FreeFileSync ein, welches mich dabei unterstützt ein automatisiertes Backup zu erstellen. Als ich damals eine Programm für diese Aufgabe suchte habe ich besonders darauf geachtet, dass es leicht zu bedienen ist. Letztendlich wollte ich ein Programm das ich jedem Otto-Normal-Verbraucher empfehlen kann. Und gerade in der Bedienbarkeit hebt es FreeFileSync von seiner Konkurrenz angenehm ab.

Das Fenster ist in zwei Seiten aufgeteilt. Die linke Seite enthält das Quellverzeichnis, dort befinden sich die Originaldateien. Die rechte Seite enthält das Zielverzeichnis mit den Kopien der Originaldateien. Über den Plus-Button lassen sich zusätzliche Verzeichnisse hinzufügen. Über die zwei Buttons “Vergleichen” und “Synchronisieren” wird der Ablauf des Backups gesteuert. Nach dem betätigen von “Vergleichen” werden Quell- und Zielverzeichnis verglichen und Unterschiede in der Listenansicht angezeigt. Danach kann man auf “Synchronisieren” klicken um die Inhalte abzugleichen. Vorher sollte man allerdings über das Zahnrad-Symbol die Synchronisationseinstellungen überprüfen.

FreeFileSync kann die Verzeichnisse auf verschiedene Arten synchronisieren. “Automatik” macht einen Abgleich beider Verzeichnisse, d.h. neue und geänderte Dateien werden sowohl von links nach rechts als auch umgekehrt kopiert. Da ich ein Backup meiner Daten haben möchte verwende ich stattdessen lieber “Spiegeln” dabei werden alle Änderungen nur im Zielverzeichnis übernommen. Ich habe nach einer Synchronisation also alle meine Daten im Backup-Verzeichnis gesichert. Wurden Dateien im Quellverzeichnis gelöscht werden sie auch in meinem Zielverzeichnis (Backup-Verzeichnis gelöscht).

Zusätzlich stehen einem noch die Optionen “Aktualisieren” und “Benutzerdefiniert” zur Verfügung. “Aktualisieren” funktioniert wie “Spiegeln” löscht im Zielverzeichnis aber keine im Quellverzeichnis entfernten Dateien und Verzeichnisse. Dadurch kann es passieren das man im Zielverzeichnis mehr Dateien hat als im Quellverzeichnis. Mittels “Benutzerdefiniert” kann man sich seine eigenen Regeln für das Kopieren und Löschen definieren.

Das Programm bietet ein paar weitere schöne Funktionen, welche die Bedienung bei mehrmaliger Ausführung beschleunigen. So lassen sich Profile anlegen und auswählen. In einem Profil werden Quell-, Zielverzeichnis und Synchronisationseigenschaften gespeichert. Das ist sehr nützlich wenn man nicht immer alles synchronisieren möchte. Bei mir werden alle Arbeitsdaten mindestens ein mal die Woche synchronisiert, während ich Fotos nur alle ein bis zwei Monate sichere. Das spart mir Zeit, da beide Verzeichnisse sehr groß sind, dauern Vergleich und Synchronisation etwas.

Ein weiteres schönes Feature ist die Möglichkeit aus dem Programm heraus eine Batch-Datei zu erzeugen. Diese Datei lässt sich z.B. auf dem Desktop platzieren. Wird sie ausgeführt startet FreeFileSync im Hintergrund und arbeitet das damit verknüpfte Profil ab. Ein integrierte Update-Mechanismus informiert sobald neue Versionen des Programms zur Verfügung stehen.

FreeFileSync ist frei verfügbar (OpenSource, unter GPL) und in deutsch erhältlich. Es kann hier heruntergeladen werden.



3 Tipps im Umgang mit OpenOffice-Impress

Mittwoch, 2. Juni 2010

Impress ist das OpenOffice (OO) Äquivalent zu Power Point. Anders als OO-Writer und OO-Calc kann es, in punkto Stabilität und Funktionsumfang leider nicht mit der kostenpflichtigen Anwendung aus dem Hause Microsoft mithalten. Wenn man das Programm öfter nutzt merkt man das an einigen Stellen Fehler auftreten und manches nicht wie erwartet funktioniert. Ich nutze da Programm trotzdem sehr gern, da es genau das kann was ich benötige – einfache Präsentationen erstellen. Wem es ähnlich geht, dem gebe ich hier 3 Tipps mit auf den Weg.

1. Nutze die Formatvorlagen, aber erstelle keine neuen

Wie alle Office-Produkte unterstützt auch Impress Formatvorlagen. Das heißt es werden nicht mehr einzelne Wörter markiert und dann formatiert, sondern auf Absätze und Zeilen wird eine definierten Formatvorlage angewendet. Der Vorteil von Formatvorlagen ist das man weniger Fehler bei der Formatierung machen kann und Zeit spart. Statt jede Stelle 5 Mal zu formatieren, müssen die betreffenden Stellen nur einmal einer Formatvorlage zugewiesen werden. Ändert man Einstellungen an einer Formatvorlage wirkt sich das auf alle Stellen aus, die mit ihr formatiert hat.

Dieses Konzept das in MS-Word und OO-Writer hervorragend funktioniert, ist in OO-Impress leider etwas “buggy”, wenn es darum geht neue Absatzvorlagen für Texte zu definieren. Ich empfehle deshalb nur die vorgegebenen Vorlagen zu modifizieren und den Rest auf herkömmliche Art zu formatieren. Die vorhandenen Formatvorlagen beziehen sich meist auf einen ganzen Text-Block. Wichtig ist besonders sich die Formatvorlage für die Aufzählungen nach den eigenen Wünschen anzupassen.

Das Klicken auf F11 öffnet die Formatvorlagenanzeige. Klickt man nun auf einer Folie in eine Textbox wird in der Anzeige die entsprechende Absatzvorlage angezeigt. Wirklich relevant sind aus meiner Sicht nur “Gliederung 1″ und “Titel”. Ich mache hier meist ein paar Änderungen zu Schriftgröße und Schriftart und damit hat es sich.

2. Arbeite mit den Masterfolien

Über das Menü “Ansicht > Master > Folienmaster” können die Vorlagen für Folien verändert werden. Mastervorlagen lassen sich nutzen um die Position von Textblöcke für alle Folien verbindlich festzulegen. Ich nutze meist zwei Mastervorlagen. Eine für das Cover und eine für den Inhalt der Seiten (siehe Bilder unten). Hat man die Masteransicht geschlossen so lassen sich über den Rechtsklick auf eine Folie im Foliendesign die gewünschte Masterfolie auswählen (Folie >Foliendesign > “Seitenvorlage auswählen”).

3. Tipps im Zusammenhang mit Bildern

Impress kennt zwei Arten mit Bildern umzugehen:

  • Die Bilder werden direkt in der Präsentationsdatei gespeichert, sowas nennt man einbetten. Enthält eine Präsentation eingebettete Bilder wird die Präsentationsdatei schnell recht groß. Das seltsame dabei: selbst wenn man die Bilder rausgelöscht und die Präsi neu speichert, bleibt die Dateigröße der Präsentation fast gleich groß. Impress räumt in seinen Präsentationsdateien nämlich mitunter nicht richtig auf. Ein Verhalten das es sich beim großen Bruder PowerPoint abgeschaut hat. Warum auch immer.
  • Die Bilder werden als externe Verknüpfung eingebunden. Wenn man die Präsi weitergeben möchte muss man also immer alle Bilddateien mitgeben. Selbst dann ist nicht garantiert, dass die Präsi korrekt angezeigt wird, da die Bilder auf einem anderem Computer auch meist in einem anderen Verzeichnis liegen. Abhilfe schafft hier nur die Bilder einzubetten. Unter “Bearbeiten > Verknüpfungen” lassen sich die Verknüpfungen auflösen, so dass man die Präsentation problemlos weitergeben kann.
    Der Vorteil die Bilder als externe Verknüpfung einzubinden, liegt darin sie jederzeit bearbeiten zu können, ohne sie dann wieder neu einbinden zu müssen.

Fertige Präsentation lässt sich mit dem Plugin “Sun Presentation Minimizer” komprimieren. Dabei werden unnötige Daten entfernt, Bilder eingebettet, skaliert und platzsparend gespeichert. Nicht selten waren bei mir die Präsentationen nach dem Minimizer nur noch halb so groß. Bei der Präsentation auf langsamen Rechnern wird sich das auch auf die Geschwindigkeit der Effekte auswirken.

Assistenzdialog des Sun Presentation Minimizer

Zusatztipp

Wer grafisch bewandert ist kann seine Folien durch eine ansprechende Hintergrundgestaltung aufpeppen. Die Bilder werden dabei in den Folienmaster gelegt und sind dann auf jeder Seite sichtbar. Zum Erstellen der Bilder nutze ich meist Inkscape. Ein paar Beispiele:



Automatisierter DNG-Workflow mittels Batchverarbeitung unter Windows

Montag, 19. April 2010

Ob Hobby- oder Berufsfotograf, früher oder später müssen alle Bilder von der Kamera auf den Computer. Jeder hat da so seinen eigenen Workflow. Und umso mehr Bilder man produziert um so länger dauert dieser Workflow. Ganz besonders dann, wenn man mit RAW-Dateien arbeitet und für den Import aufgrund von “Sonderwünschen” mehrere Programme nacheinander benutzt. Eine Lösung ist hier die Batchverarbeitung von Komandozeilenbefehlen, um den Workflow zu automatisieren. Batch-Dateien enthalten Kommandozeilenbefehle und führen sie nacheinander aus. Ich möchte an dieser Stelle ein Batch-Script vorstellen, welches ich mir vor einiger Zeit geschrieben habe, um meinen Workflow zu vereinfachen. (mehr …)