Klassen-Referenz - imageManager
Der imageManager implementiert Methoden zur Bearbeitung von Bildern. Hierbei werden
sowohl JPG und GIF als auch PNG-Bilder unterstützt, sofern die PHP-GD-Library in den entsprechenden
Version verfügbar ist. Der imageManager muss vor der Verwendung per
import('tools::image','imageManager');
eingebunden werden. Um die Klasse verwenden zu können muss diese instanziiert werden. Lediglich
die Methode showImageAttributes() kann statisch benutzt werden. Für
die Bearbeitung von Bildern stehen folgende Methoden zur Verfügung:
-
setImageSize():
Setzt die Ziel-Maße für das Bearbeiten von Bildern mit resizeImage().
-
generateThumbnail():
Erzeugt ein Thumbnail nach der Nameskonvention {Bisherige Dateiname minus Endung}_thumb.{Endung}
in einem übergebenen Ordner.
-
showImageAttributes() (statisch):
Zeigt Bild-Attribute wie Breite, Höhe, Type u.s.w. an.
-
resizeImage():
Vergrößert oder verkleinert ein gegebenes Bild unter Berücksichtigung eines
Zieldateinamens.
-
setJPGQuality():
Konfiguriert die Qualität eines JPG-Bildes während einer JPG-Komprimierung.
Standard-Qualität ist 80%.
Ein typischer Anwendungsfall ist das Ausliefern von Bildern über eine PHP-Datei unter Angabe von
Bildmaßen. Im folgenden Skript wird davon ausgegeben, dass dieses immer mit korrekten und
vollständigen Parametern aufgerufen wird. Weitergehende Prüfungen sind nicht enthalten.
// Einbinden des imageManagers import('tools::image','imageManager');
// Gemeinsamen Bild-Basis-Pfad definieren $imageBasePath = '../pics';
// Cache-Ordner definieren $imageCacheFolder = '../pics_cache';
// Parameter 'image' lokal verfuegbar machen $image = (string)$_REQUEST['image'];
// Pruefen, ob Datei existiert if(file_exists($imageBasePath.'/'.$image)){
// Bildmasse holen $ImageInfo = imageManager::showImageAttributes($imageBasePath.'/'.$image);
// Breite setzen $width = (int)$_REQUEST['width'];
// Hoehe setzen $height = (int)$_REQUEST['hight'];
// end if } else{ trigger_error('The file specified with the parameter \'image\' does not exist in the image path \''.$imageBasePath.'\'!',E_USER,ERROR); exit(1); // end else }
// Cache-Key erzeugen $cacheKey = md5($image).'.'.$ImageInfo['Extension'];
// Cache prüfen if(file_exists($imageCacheFolder.'/'.$cacheKey)){
// imageManager erzeugen $iM = new imageManager($width,$height);
// Bild resizen und cachen $cachedImage = $iM->resizeImage($imageBasePath.'/'.$image,$imageCacheFolder,$cacheKey);
// end if }
// ContentType zusammensetzen switch($ImageInfo['Extension']){
case 'gif': $ContentType = 'image/gif'; break; case 'jpg': $ContentType = 'image/jpg'; break; case 'jpeg': $ContentType = 'image/jpg'; break; case 'png': $ContentType = 'image/png'; break; default: $ContentType = 'application/octet-stream'; break;
// end switch }
// Header ausgeben header('Content-Type: '.$ContentType); header('Content-disposition: inline; filename="'.$image.'"'); header('Content-Transfer-Encoding: binary'); header('Content-Length: '.filesize($imageCacheFolder.'/'.$cacheKey));
// Bild ausgeben @readfile($imageCacheFolder.'/'.$cacheKey);
// Ausgabe beenden exit();
Kommentare
Möchten Sie den Artikel eine Anmerkung hinzufügen, oder haben Sie ergänzende Hinweise? Dann können Sie diese hier einfügen. Die bereits verfassten Anmerkungen und Kommentare finden Sie in der untenstehenden Liste.
Für diesen Artikel liegen aktuell keine Kommentare vor.
|