JYAML::getImage

In JYAML 4.x ist eine PHP-Klasse zur serverseitigen Bildverarbeitung mit eingebaut. Damit können Sie z.B. einfach nur eine unbekannte Bildgröße auslesen, Bilder verkleinern sowie vergrößern und auch zuschneiden.

Diese PHP-Image-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

Bildverarbeitungs-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

Plugins

  • $image->createWatermark(string absolute path to image[, string position, int padding])
    Überlagert das Bild mit einem Wasserzeichen. Der Pfad zum Bild muss absolut sein. Das Wasserzeichen kann die Positionen zentriert ('cc', standard), links oben ('lt'), rechts oben ('rt'), links unten ('lb'), rechts unten ('rb'), zentriert oben ('ct') und zentriert unten ('cb') haben. Position und Padding sind optional.
  • $image->createReflection([int percent, int reflection, int opacity, boolean border, string borderColor])
    Alle Argumente sind optional.
    Percent: Bestimmt, wie viel Prozent vom Bild reflektiert werden soll (Standard '40').
    Reflection: Bestimmt die Höhe der Reflektion in Prozent (relativ zur originalen Bildhöhe) (Standard '40').
    Opacity: Legt die Deckkraft (ausgehend von weißem Hintergrund) in Prozent fest (Standard '80').
    Border: Bestimmt ob ein Rahmen um das Originalbild gezeichnet werden soll (Standard false).
    BorderColor: Die Farbe von Border (wenn aktiviert) im HEX-Farbcode (Standard '#a4a4a4').

Ausgabe Funktionen

  • $image->toObject()
    Rückgabewert: <img> Attribute als JRegistry object.
    Kann nach jeder Bildverarbeitungsfunktion aufgerufen werden. Zum Beispiel 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. Zum Beispiel 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

OptionBeschreibungStandard-WertGü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
}
?>