Arbeiten mit Bildern: Unterschied zwischen den Versionen
Aus Contao Community Documentation
Carino (Diskussion | Beiträge) (Ergänzungen) |
Carino (Diskussion | Beiträge) (→Parameter) |
||
Zeile 22: | Zeile 22: | ||
# $height: enthällt die gewünschte Höhe des Bildes (z.B.: 250) | # $height: enthällt die gewünschte Höhe des Bildes (z.B.: 250) | ||
# $mode: optionale Angabe der Skallierungsmethode | # $mode: optionale Angabe der Skallierungsmethode | ||
− | |||
## proportional | ## proportional | ||
## box | ## box | ||
## crop (absolete seit 2.11) | ## crop (absolete seit 2.11) | ||
− | + | ## left_top (seit 2.11) | |
− | + | ## center_top (seit 2.11) | |
− | + | ## right_top (seit 2.11) | |
− | ## center_top | + | ## left_center (seit 2.11) |
− | ## right_top | + | ## center_center ( seit 2.11 - rückwärtskompatibel für crop) |
− | ## left_center | + | ## right_center (seit 2.11) |
− | ## center_center (rückwärtskompatibel für crop) | + | ## left_bottom (seit 2.11) |
− | ## right_center | + | ## center_bottom (seit 2.11) |
− | ## left_bottom | + | ## right_bottom (seit 2.11) |
− | ## center_bottom | + | |
− | ## right_bottom | + | |
# $target: Ort an dem das neue Bild gespeichert werden soll, relativ zu TL_ROOT. | # $target: Ort an dem das neue Bild gespeichert werden soll, relativ zu TL_ROOT. |
Version vom 13. März 2012, 16:22 Uhr
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 system/libraries/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, sofern der Parameter $target nicht übergeben wird. Es wird der Pfad zum neuen Bild zurück gegeben, wenn die Verarbeitung funktioniert hat.
Aktuell verarbeitet Contao die Bildformate welche von PHP (gdlib) unterstützt werden: jpeg, jpg, png und gif (nur lesen)
Parameter
- $image: Enthällt den Pfad zu dem Bild welches bearbeitet werden soll. (BSP: tl_files/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
- crop (absolete seit 2.11)
- left_top (seit 2.11)
- center_top (seit 2.11)
- right_top (seit 2.11)
- left_center (seit 2.11)
- center_center ( seit 2.11 - rückwärtskompatibel für crop)
- right_center (seit 2.11)
- left_bottom (seit 2.11)
- center_bottom (seit 2.11)
- right_bottom (seit 2.11)
- $target: Ort an dem das neue Bild gespeichert werden soll, relativ zu TL_ROOT.
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;