Sie befinden sich hier: Dokumentation > JYAML für Joomla! 1.7+, 2.5 > Programmierung und Entwicklung > JYAML::getImage

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
}
?>