Arbeiten mit Bildern
Aus Contao Community Documentation
betrifft | |
---|---|
TYPOlight Version | ab 2.7 |
Contao Version | ab 2.9 |
Das Contao-Framework stellt folgende Methoden für das Arbeiten mit Bildern zur Verfügung:
- generateImage()
- getImage()
Die Original-Daten, welche meistens unter dem Ordner tl_files abgelegt sind werden aufbereitet. Hierzu wird das Bild in der entsprechenden Größe unter system/html abgelegt und auf der Webseite werden nur noch Verweise auf diese erzeugte Kopie ausgegeben.
Inhaltsverzeichnis
getImage()
Die Methode getImage() ist in der Datei Controller.php angesiedelt und stellt fünf Parameter zur Verfügung, von welchen die ersten drei verpflichtend sind. Die Methode erstellt eine neue Version des Original-Bildes und legt dieses im Cache Verzeichnis /system/html ab. Es wird eine URL zum neuen Bild zurück gegeben. Dieser Rückgabewert wird dann mit der Methode generateImage() (siehe unten) weiter verarbeitet.
Aktuell unterstützt Contao die folgenden Bildformate: jpeg, jpg, png, gif (sofern die installierte Version der glib das jeweilige Format auch bereitstellt).
Parameter
- $image: Enthällt den Pfad zu dem Bild welches bearbeitet werden soll. (BSP: tl_root/images/foobar.jpg)
- $width: enthällt die gewünschte Breite des Bildes (z.B.: 200)
- $height: enthällt die gewünschte Höhe des Bildes (z.B.: 250)
- $mode: optionale Angabe der Skallierungsmethode
- proportional
- box
- $target: // fehlt
generateImage()
Die Methode generateImage() ist ebenfalls in der Controller.php angesiedelt und erzeugt einen HTML <img> Tag welcher in einem Template ausgegeben werden kann. Diese Methode besitzt 3 Parameter wovon nur der Erste verpflichtend angegeben werden muss. Wird beim Parameter $src kein Pfad angegeben, sondern nur ein Bildname (Pfade beginnen immer mit / und sind relativ zum TL_ROOT zu verstehen, Bildnamen nicht) so sucht Contao das Bild im aktuellen Themes Verzeichnis. (i.d.R.: /system/themes/default/images/ sofern kein anderes Backend-Theme gewählt wurde).
Parameter
- $src: Der Pfad zum Bild welches eingebunden werden soll. (hier kann z.B. der Rückgabewert der Methode getImage() verwendet werden)
- $alt: Angabe eines Wertes für das alt-Attribut. Dieser ist laut W3C Pflicht und sollte immer angegeben werden.
- $attributes: Angabe weiterer Attribute für das zu erzeugende <img> Tag. (z.B.: inline CSS via style Attribut, etc.)
Codebeispiele
Mit folgendem Code kann eine neue verkleinerte Version eines Bildes im Cache abgelegt und auf der Seite ausgegeben werden:
$strReturn = $this->generateImage($this->getImage('tl_files/images/foobar.jpg', 300, 250, 'proportional'), 'my first image'); // nun den Wert an ein Template übergeben. $this->Template->myFirstImage = $strReturn;