Es ist mit Baseportal möglich aus perl heraus Bilder direkt über die Methoden get und mod zu bearbeiten.
Der Text _files/ ist dabei wichtig und kennzeichnet das man eine Datei in oder in Unterverzeichnissen des Ordners files meint. (dort werden hochbeladene Dateien automatisch gespeichert)
Abfragen von Bildattributen
Aufruf:
@werte = get @attribute,"_files/datei";
Erwartet wird ein array mit den gewünschten Parametern, zurückgegeben werden jeweiligen werte. Zusätzlich stehen bereits abgefragte Parameter in %_files zur Verfügung
Bezeichner von Typischen Attributen:
|
integer |
Anzahl der Farben im Bild |
|
string |
Bildkommentar |
|
integer |
Grösse des Bildes auf der Festplatte (Byte) |
|
string |
Bild geometry |
|
integer |
Höhe/Zeilen des Bildes |
|
integer |
Breite/Spalten des Bildes |
Beispiel:
($x,$y,$size)=get ["width","height","filesize"],"_files/bild.jpg";
Verändern des Bildes
Aufruf:
mod "Aktion",%parameter,"_files/datei";
mod @aktionsliste,"_files/datei";
Fast so einfach wie Bildattribute zu bekommen ist es sie zu verändern. Dazu muss zum einem die Aktion angegeben werden und dann noch, falls benötigt Werte in einem Parameterhash.
Beispiel:
mod "resize",{width=>200,height=>150},"_files/$bildrein";
Wenn mehr als eine aktion am selben Bild vorgenommen werden soll ist es besser dies auf einmal zu machen, weil ein unnötiges zwischenspeichern entfällt. Dazu kann ein Array mit Aktionen übergeben werden.
Beispiel:
my @aktionen;
push (@aktionen,["resize",{width=>int($x/2),height=>int($y/2)}]);
push (@aktionen,["Flop"]);
push (@aktionen, ["OilPaint",["radius","5"]]);
mod @aktionen,"_files/$bildrein";
Hier nun die Gebräuchlichsten Aktionen mit Parametern. Es ist meist nicht nötig alle Parameter zu übergeben.
|
geometry=>geometry, width=>integer, height=>integer, fill=>color |
Umrandet das Bild mit einem Rahmen |
|
geometry=>geometry, width=>integer, height=>integer, x=>integer, y=>integer, fuzz=>double |
Schneidet das Bild zu. |
|
name=>string, profile=>blob |
Ändert Informations Profile (z.B.name=>EXIF profile=>undef zum löschen der EXIF infos) |
|
geometry=>geometry, width=>integer, height=>integer, filter=>{Point, Box, Triangle, Hermite, Hanning, Hamming, Blackman, Gaussian, Quadratic, Cubic, Catrom, Mitchell, Lanczos, Bessel, Sinc}, blur=>double |
Ändert die Bildgrösse |
|
degrees=>double, color=>color |
Dreht das Bild |
|
target=>filename |
Verschiebt bzw. Kopiert Bild und ändert das Format entsprechend der Endung |
Viele weitere Aktionen (d.h. nicht alle sind möglich) können sie der original Dokumentation von
ImageMagick entnehmen.