Prty::ImageMagick - Konstruiere eine ImageMagick-Kommandozeile
Prty::Hash
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.
$cmd = $class->new;
Instantiiere ein ImageMagick-Kommandozeilen-Objekt und liefere eine Referenz auf dieses Objekt zurück.
$cmd->addElement($str);
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.
Ohne Whitespace:
$cmd->addElement('input.jpg'); => input.gif
Mit Whitespace:
$cmd->addElement('Sonne am Abend.jpg'); => 'Sonne am Abend.jpg'
$cmd->addCommand($command);
Ergänze die Kommandozeile am Anfang um das Kommando $command. Die Methode liefert keinen Wert zurück.
Kommando convert:
$cmd->addCommand('convert'); => convert
$cmd->addOption($opt); $cmd->addOption($opt=>$val);
Ergänze die Kommandozeile um die Option $opt und (optional) den Wert $val. Die Methode liefert keinen Wert zurück.
Option ohne Wert:
$cmd->addOption('-negate'); => -negate
Option mit Wert:
$cmd->addOption(-rotate=>90); => -rotate 90
$str = $cmd->command;
Liefere das Kommando als Zeichenkette.
$cmd->execute;
Führe ImageMagick-Kommando $cmd aus. Im Fehlerfall wird eine Exception geworfen.
$cmd = $class->resizeFill($input,$output,$size,$background);
Image-Objekt oder Bilddatei-Pfad des Input-Bildes.
Bilddatei-Pfad des Output-Bildes. Das Verzeichnis wird erzeugt
Größe des generierten Output-Bildes.
Farbe des Hintergrunds, wenn das Bild den Bereich $size nicht vollständig ausfüllt.
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.
$cmd = $class->resizeStretch($input,$output,$size);
Weicht das Seitenverhltmis ab, wird das Bild verzerrt.
$cmd = $class->negate($input,$output);
Generiere ein convert-Kommando, dass das Input-Bild negiert.
$cmd = $class->morph($input1,$input2,$outPattern,$n);
Pfad oder Bilddatei-Objekt des ersten Bildes.
Pfad oder Bilddatei-Objekt des zweiten Bildes.
Pfad-Muster für die erzeugte Bildfolge. Z.B. "$dir/%02d"
Anzahl der erzeugten Zwischenbilder.
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 Prty::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
Erzeuge einen convert-Aufruf für 5 Zwischenbilder (hier an der Kommandozeile):
$ perl -MPrty::ImageMagick -E 'say Prty::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!)
1.126
Frank Seitz, http://fseitz.de/
Copyright (C) 2019 Frank Seitz
This code is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
To install Prty, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Prty
CPAN shell
perl -MCPAN -e shell install Prty
For more information on module installation, please visit the detailed CPAN module installation guide.