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
Bitte geben Sie Ihren Kommentar hier ein. Füllen Sie alle mit * gekennzeichneten Felder vollständig und korrekt aus. Um zum Artikel zurückzukehren klicken sie bitte hier. Zur Formatierung des Textes können folgende BBCode-ähnliche die Zeichen verwendet werden:- [f]..[/f]: fett
- [k]..[/k]: kursiv
- [u]..[/u]: unterstrichen
Hinweis: Formatierungszeichen in Name und E-Mail-Adresse werden nicht akzeptiert.
|