NAME
Quiq::ImageMagick - Konstruiere eine ImageMagick-Kommandozeile
BASE CLASS
DESCRIPTION
ImageMagick Online-Dokumentation: http://www.imagemagick.org/Usage/
Ein Objekt der Klasse repräsentiert eine ImageMagick-Kommandozeile. Die Klasse verfügt einerseits über elementare (Objekt-)Methoden, um eine solche Kommandozeile sukzessive aus ihren elementaren Bestandteilen konstruieren zu können und höhere (Klassen-)Methoden, die eine bestimmte Funktion durch das Hinzufügen einer Reihe von Optionen realisieren.
METHODS
Konstruktor
new() - Konstruktor
Synopsis
$cmd = $class->new;
Description
Instantiiere ein ImageMagick-Kommandozeilen-Objekt und liefere eine Referenz auf dieses Objekt zurück.
Kommando konstruieren
addElement() - Füge ein Kommandozeilen-Element hinzu
Synopsis
$cmd->addElement($str);
Description
Ergänze die Kommandozeile um Kommandozeilen-Element $str. Ein Kommandozeilen-Element ist ein durch Whiltespace getrennter elementarer Teil der Kommandozeile, wie z.B. das Kommando, eine Option, ein Optionsargument, ein Dateiname usw.
Enthält $str Whitespace oder andere, spezielle Zeichen, wird $str in einfache Anführungsstriche eingefasst.
Examples
Ohne Whitespace:
$cmd->addElement('input.jpg');
=>
input.gif
Mit Whitespace:
$cmd->addElement('Sonne am Abend.jpg');
=>
'Sonne am Abend.jpg'
addCommand() - Füge Kommando hinzu
Synopsis
$cmd->addCommand($command);
Description
Ergänze die Kommandozeile am Anfang um das Kommando $command. Die Methode liefert keinen Wert zurück.
Examples
Kommando convert:
$cmd->addCommand('convert');
=>
convert
addOption() - Füge Option hinzu
Synopsis
$cmd->addOption($opt);
$cmd->addOption($opt=>$val);
Description
Ergänze die Kommandozeile um die Option $opt und (optional) den Wert $val. Die Methode liefert keinen Wert zurück.
Examples
Option ohne Wert:
$cmd->addOption('-negate');
=>
-negate
Option mit Wert:
$cmd->addOption(-rotate=>90);
=>
-rotate 90
Kommando
command() - Kommandozeile als Zeichenkette
Synopsis
$str = $cmd->command;
Description
Liefere das Kommando als Zeichenkette.
Kommando-Ausführung
execute() - Führe ImageMagick-Kommandozeile aus
Synopsis
$cmd->execute;
Description
Führe ImageMagick-Kommando $cmd aus. Im Fehlerfall wird eine Exception geworfen.
Klassenmethoden (vollständige Kommandozeilen)
resizeFill() - Generiere Kommando für Operation resizeFill
Synopsis
$cmd = $class->resizeFill($input,$output,$size,$background);
Arguments
- $input
-
Image-Objekt oder Bilddatei-Pfad des Input-Bildes.
- $output
-
Bilddatei-Pfad des Output-Bildes. Das Verzeichnis wird erzeugt
- $size
-
Größe des generierten Output-Bildes.
- $background
-
Farbe des Hintergrunds, wenn das Bild den Bereich $size nicht vollständig ausfüllt.
Description
Generiere ein convert-Kommando, dass das Input-Bild auf Größe $size bringt.
Ist das Bild in mindestens einer Dimension größer als $size, wird es verkleinert.
Andernfalls wird das Bild in seiner Größe nicht verändert.
Vom Bild nicht abgedeckte Bereiche werden in Hintergrundfarbe $background dargestellt.
resizeStretch() - Generiere Kommando für Operation resizeStretch
Synopsis
$cmd = $class->resizeStretch($input,$output,$size);
Arguments
- $input
-
Image-Objekt oder Bilddatei-Pfad des Input-Bildes.
- $output
-
Bilddatei-Pfad des Output-Bildes. Das Verzeichnis wird erzeugt
- $size
-
Größe des generierten Output-Bildes.
Description
Generiere ein convert-Kommando, dass das Input-Bild auf Größe $size bringt.
Weicht das Seitenverhltmis ab, wird das Bild verzerrt.
negate() - Generiere Kommando für Operation negate
Synopsis
$cmd = $class->negate($input,$output);
Arguments
- $input
-
Image-Objekt oder Bilddatei-Pfad des Input-Bildes.
- $output
-
Bilddatei-Pfad des Output-Bildes. Das Verzeichnis wird erzeugt
Description
Generiere ein convert-Kommando, dass das Input-Bild negiert.
morph() - Generiere Kommando für Operation morph
Synopsis
$cmd = $class->morph($input1,$input2,$outPattern,$n);
Arguments
- $input1
-
Pfad oder Bilddatei-Objekt des ersten Bildes.
- $input2
-
Pfad oder Bilddatei-Objekt des zweiten Bildes.
- $outPattern
-
Pfad-Muster für die erzeugte Bildfolge. Z.B. "$dir/%02d"
- $n
-
Anzahl der erzeugten Zwischenbilder.
Description
Generiere ein convert-Kommando, das $n Zwischenbilder für die Bilder $input1 und $input2 erzeugt. Unter dem Pfad-Muster $outPattern werden $n+2 Bilder gespeichert: Die $n gemorphten Bilder plus die beiden Ausgangsbilder.
Wird als $input1 oder $input2 ein Objekt angegeben, muss dieses eine Methode path() besitzen, die den Pfad zur Bilddatei liefert, wie die Objekte der Klasse Quiq::File::Image.
Beim convert-Kommando kann man bei der Morph-Operation zwar auch mehrere Bilddateien angeben, aber dann wird extrem viel Speicher benötigt. Besser ist es, die Bilder paarweise zu morphen und das letzte Bild
Example
Erzeuge einen convert-Aufruf für 5 Zwischenbilder (hier an der Kommandozeile):
$ perl -MQuiq::ImageMagick -E 'say Quiq::ImageMagick->morph("1.jpg","2.jpg","tmp/%02d.jpg",5)->command'
Erzeugtes Kommando:
convert 1.jpg 2.jpg -morph 5 tmp/%02d.jpg
Wird das Kommando ausgeführt, entstehen in Unterverzeichnis tmp (das vorab existieren muss) sechs Bilder:
00.jpg entspricht 1.jpg (die Bilder sind nicht identisch!)
01.jpg
02.jpg
03.jpg
04.jpg
05.jpg
06.jpg entspricht 2.jpg (die Bilder sind nicht identisch!)
VERSION
1.171
AUTHOR
Frank Seitz, http://fseitz.de/
COPYRIGHT
Copyright (C) 2020 Frank Seitz
LICENSE
This code is free software; you can redistribute it and/or modify it under the same terms as Perl itself.