JYAML::getImage
In JYAML 4.x ist eine PHP-Klasse zur Bildverarbeitung mit eingebaut. Damit können Sie z.B. einfach nur eine unbekannte Bildgröße auslesen, Bilder verkleinern sowie vergrößern und auch zuschneiden.
Die PHP-Klasse ist eine Erweiterung von dieser PHPThumb Klasse.
Folgende Bildformate werden unterstützt:
- png
- jpg
- gif
JYAML::getImage Referenz
Syntax: $image = JYAML::getImage(string $src, string $alt, array $options, string $attribs)
Parameter:
- string $src: Bildpfad (absolut oder relativ zum Joomla! Hauptverzeichnis)
- string $alt: <img> Alt Attribut
- array $options: PhpThumb Optionen
- string $attribs: Zusätzliche <img> Attribute (z.B. 'onclick="alert('hello world')" class="myClass"')
Rückgabewert: object JYAMLImage: Referenzobjekt zur Weiterverarbeitung
Bildverarbeitung's Funktionen
$image->resize(int width [, int height])
Die Proportionen werden nicht verändert. Es wird automatisch das möglichst größte Seitenverhältnis von Breite zur Höhe ermittelt. Die Höhe (height) ist optional.
$image->resizePercent(int percent)
Prozentuale Größenanpassung$image->adaptiveResize(int width, int height)
Größenanpassung auf die exakt angegebene Breite und Höhe. Das Bild wird, wenn nötig, entsprechend zugeschnitten. Die Ausrichtung des Zuschnittes ist mittig.$image->cropFromCenter(int width[, int height])
Bild auf eine bestimmte größe zuschneiden. Die Ausrichtung des Zuschnittes ist mittig. Die Höhe (height) ist optional.$image->crop(int x-position, int y-position, int width, int height)
Bild auf eine bestimmte größe zuschneiden. Die x- und y-Position gibt die Startposition (Koordinaten) an, ab wo das Bild zugeschnitten werden soll.$image->rotateImageNDegrees(int degree)
Erzeugt eine Bildrotation um einen bestimmten Grad-Wert. Negativ- und Positiv Zahlen sind erlaubt.$image->rotateImage([string direction])
Wrapper Funktion von rotateImageNDegrees: Erzeugt eine Bildrotation mit +90° (direction = 'CW') oder -90° (direction ist nicht angegeben)$image->setFormat([string png, jpg or gif])
Konvertiert das Bild in ein anderes Format. Unterstützt werden png, jpg und gif
Beispiele (PHPThumb Wiki): https://github.com/masterexploder/PHPThumb/wiki/Basic-Usage
Ausgabe Funktionen
$image->toObject()
Rückgabewert: <img> Attribute als JRegistry object.
Kann nach jeder Bildverarbeitungsfunktion aufgerufen werden. Z.b. nützlich um einen bestimmten Zustand der Breite oder Höhe vor der weiterverarbeitung zu prüfen.$image->toArray()
Rückgabewert: Wie toObject nur als PHP-Array
Kann nach jeder Bildverarbeitungsfunktion aufgerufen werden. Z.b. nützlich um einen bestimmten Zustand der Breite oder Höhe vor der weiterverarbeitung zu prüfen.$image->toHtml()oder$image->toString()
Rückgabewert: XHTML <img> Tag mit allen Attributen als string
Alle Funktionen (Methoden) können verkettet (chaining) augerufen werden.
Beispiel: echo JYAML::getImage(...)->resize(...)->crop(...)->toHtml()
PhpThumb Optionen
| Option | Beschreibung | Standard-Wert | Gültige Werte |
|---|---|---|---|
| resizeUp | Bestimmt ob ein Bild, das kleiner ist als bei einer Größenanpassung angegeben wurde, vergrößert werden soll. |
false | true / false |
| jpegQuality | JPEG Format Qualität (Bestimmt die Kompression, 100=ohne) | 100 | 1-100 |
| preserveAlpha | Bestimmt ob der Alpha-Transparenz Kanal im PNG Format erhalten bleiben soll |
true | true / false |
| preserveTransparency | Bestimmt ob die Transparenz im GIF Format erhalten bleiben soll | true | true / false |
Beispiel
Hier ein Beispiel wie man z.B. das Logo-Bild von den Template-Einstellungen mit einer bestimmten größe anzeigen lässt.
<?php
if($_logoImge = trim($this->params->get('logo_image', ''))) {
$_img = JYAML::getImage(
$this->getUrl('root', $_logoImge), // image src
JFactory::getApplication()->getCfg('sitename'), // image alt
array('resizeUp' => true), // Thumbnailer options
'class="site-logo"' // additional attributes
);
echo $_img->resize(400, 100)->toHtml(); // output image with best-of size within 400px x 100px
}
?>
