Flexible Beschriftung

Bisher stand der Schriftzug direkt im Skript. Für einen anderen Text müssten Sie dieses jedes Mal verändern oder den Text als zusätzlichen Parameter übermitteln. Mit einem kleinen Kniff gelingt es aber, den Text aus einer Datei auszulesen. Die Annotate-Methode erlaubt die Angabe eines Dateinamens – in dieser angegebenen Datei legen Sie die Zeile einfach ab. Dazu ändern Sie den Aufruf in Zeile 14 von Listing 4 wie folgt:

$text = '@beschriftung.txt'

Bei jedem Aufruf des Skriptes liest das Magick-Objekt die Datei beschriftung.txt und versieht das Foto mit dem dort gespeicherten Text. Um den Inhalt der Datei festzulegen, genügt ein Texteditor.

Individuelle Beschriftung

Manchmal möchten Sie nicht alle Bilder identisch beschriften, sondern jedes mit einem anderen Text versehen. Dafür müssen Sie aber das Perl-Skript wieder etwas verändern (Listing 5). Sie erstellen zunächst eine Textdatei, in der Sie für jede Abbildung den gewünschten Text hinterlegen. Die Angaben für die jeweilige Datei legen Sie in einer eigenen Zeile ab – zuerst den Name der Bilddatei, danach den Text. Als Trennzeichen fungiert ein Doppelpunkt, gefolgt von einem Leerzeichen:

foto156.png: Berlin, Funkturm am Messegelände
foto159.png: Berlin, Alexanderplatz mit Weltzeituhr
...

Das Perl-Skript aus Listing 5 rufen Sie danach mit dem Namen der Textdatei auf:

$ ./beschriftung.pl bilderliste.txt

Nach den bekannten Anweisungen zu Beginn gilt es, die Datei mit der Bilderliste zu öffnen (Zeile 13) und danach in einer Schleife zeilenweise zu verarbeiten. Jede gelesene Textzeile zerlegt das Skript mit Hilfe eines regulären Ausdrucks und der Funktion split am Trennzeichen : in zwei separate Teile (Zeile 16), die im Array @zeile landen.

Danach gibt das Skript die Werte einmal aus, um Ihnen die Gelegenheit zu geben, diese noch einmal zu kontrollieren. In den folgenden Zeilen operiert das Skript auf der Bilddatei: Es erzeugt das Bildobjekt, liest die Datei ein, beschriftet sie mit der Annotate-Methode, schreibt die geänderte Bilddatei und schließt diese – alles wie gehabt. Zu guter Letzt schließt das Skript die Datei mit der Bilderliste wieder.

Listing 5

#!/usr/bin/perl -w
# beschriftung.pl - Bilder flexibel beschriften
# graphicsmagick-Modul einbinden
use Graphics::Magick;
# Abbrechen, falls keine Parameter übergeben wurden
exit unless @ARGV;
my (@zeile, $dateiname, $bild);
$dateiname = $ARGV[0];
open (DATEILISTE, $dateiname);
while (<DATEILISTE>) {
  @zeile = split(/:\s+/, $_, 2);
  print "Datei: $zeile[0]\n";
  print "Text: $zeile[1]\n";
  $bild = Graphics::Magick->new;
  $bild->Annotate (font=>'font.ttf', pointsize=>40, fill=>'red', text=>$zeile[1], x=>100, y=>100);
  $bild->Write(filename=>$zeile[0]);
}
close (DATEILISTE);

LinuxCommunity kaufen

Einzelne Ausgabe
 
Abonnements
 
TABLET & SMARTPHONE APPS
Bald erhältlich
Get it on Google Play

Deutschland

Ähnliche Artikel

  • Bildbearbeitung mit ImageMagick
    Wer nicht 1000 Urlaubsbilder von Hand skalieren, normieren, beschneiden oder mit Wasserzeichen versehen möchte, für den führt kein Weg an der Werkzeugsammlung ImageMagick vorbei.
  • Am laufenden Band
    Kommandozeilenprogramme zur Bildbearbeitung punkten gegenüber den Tools mit grafischer Oberfläche durch einen entscheidenden Vorteil: Sie bieten vor allem beim Bearbeiten mehrerer Bilder deutlich mehr Flexibilität.
  • Profi-Funktionen von ImageMagick nutzen
    Vom Konvertieren von Negativen bis hin zum PDF fürs Fotobuch – mit ImageMagick und ein paar Zeilen Shell-Code meistern Sie jede Aufgaben ruck, zuck auf der Kommandozeile.
  • Bilder verarbeiten mit der Magick Scripting Language
    Die Magic Srcipting Language hilft Ihnen, Bilder mit einem fest definierten Satz an Parametern zu bearbeiten. In Verbindung mit geschickter Shell-Programmierung nutzen Sie so die Ressourcen eines Systems optimal aus.
  • Halbautomatische Nachbearbeitung von Fotoserien
    Immer dann, wenn es um die Bearbeitung hunderter, im JPEG-Format abgelegter Fotos geht, ist GIMP nicht der Weisheit letzter Schluss. Hier spielen speziell Kommandozeilenprogramme ihre Stärken aus.
Kommentare

Infos zur Publikation

LU 02/2016: Alt-PCs flott machen

Digitale Ausgabe: Preis € 4,95
(inkl. 19% MwSt.)

Mit der Zeitschrift LinuxUser sind Sie als Power-User, Shell-Guru oder Administrator im kleinen Unternehmen monatlich auf dem aktuelle Stand in Sachen Linux und Open Source.

Sie sind sich nicht sicher, ob die Themen Ihnen liegen? Im Probeabo erhalten Sie drei Ausgaben zum reduzierten Preis. Einzelhefte, Abonnements sowie digitale Ausgaben erwerben Sie ganz einfach in unserem Online-Shop.

NEU: DIGITALE AUSGABEN FÜR TABLET & SMARTPHONE

HINWEIS ZU PAYPAL: Die Zahlung ist auch ohne eigenes Paypal-Konto ganz einfach per Kreditkarte oder Lastschrift möglich!       

Der Tipp der Woche

Schon gewußt?

14.11.2015

Auch unter Ubuntu 15.10 kann man wieder mit dem Startmedienersteller (alias Startup Disk Creator) ein Live-System auf einem USB-Stick einrichten. ...

Fehler des Startmedienerstellers von Ubuntu 15.10 umgehen

Aktuelle Fragen

Leap 42.1 und LibreOffice
Heinz Kolbe, 09.02.2016 21:54, 0 Antworten
Moin moin, auf meinem Notebook habe ich Leap 42.1 und Win 10 installiert. Alles läuft rund nur...
Tails Update
Val Lerie, 11.01.2016 10:51, 0 Antworten
Hallo zusammen, updaten > update Speichern unter > Persistent nicht möglich, mit der Meldung;...
Recoll
Jürgen Heck, 20.12.2015 18:13, 4 Antworten
Wie kann man mit Recoll nach bestimmten Zeichen/Satzzeichen bzw. Zeichenkombinationen suchen, z....
Wings Platinum 4 auf Linux?
Bodo Steguweit, 18.12.2015 11:37, 4 Antworten
Hallo in die Runde ich nutze für meine Diashows Wings Platinum 4 als Diareferent. Arbeite jetzt...
Bandbreite regulieren
Georg Armani, 25.11.2015 16:50, 1 Antworten
Hallo, ich bin ein Neuling in Sachen Linux und hoffe auf Hilfe. Ich habe zwei Windows Rechner...