Home
Navigation
Impressum
Coder Welten - Programmierung und Optimierung
Coder Welten
 
 

 

 

Eine Klasse für die automatische Erzeugung von Thumbnails

Beschreibung einer Klasse zur Erzeugung von Vorschaubildern

Übersicht » Einführung CSV

Tutorial mit Beispielen für eine Bildergalerie:

  1. Kleines Upload-Script (ein einfaches PHP-Upload-Script für Images)
  2. Kleines Galerie-Script (Bespiel für ein einfaches PHP-Galerie-Script)
  3. Demo kleine Galerie (Demo einer kleinen Bildergalerie)
  4. Erweitertes Upload-Script (Erzeugung von Vorschaubildern inklusive)
  5. Thumbnails Klasse (eine Klasse für die Erzeugung von Thumbnails)
  6. Erweitertes Galerie-Script (Bespiel für ein erweitertes PHP-Galerie-Script)
  7. Demo erweiterte Galerie (Demo einer erweiterten Bildergalerie)
  8. Erweitertes Galerie-Script (...)

Einsatz und Verwendung

Diese kleine Klasse lässt sich praktisch überall ein­setzen, wo es um die Erzeugung von Thumbnails geht. Allenfalls könnten geringfügige Ergänzungen er­forderlich werden, z.B. um eine andere Größe für die Vorschaubilder vorzu­geben.

...

Klasse zur Erzeugung von Vorschaubildern (thumbs-klasse.php):

<?php

/*-- Klasse für die Erzeugung von Vorschaubildern bzw. Thumbnails -----------*/

class KleineBilder {

    private $vorw = 220;   // max. Breite für Vorschaubilder
    private $vorh = 200;   // max. Höhe für Vorschaubilder
    private $proz;         // Wert für Verkleinerung
    public  $neuw;         // errechnete Weite für Thumbs
    public  $neuh;         // errechnete Höhe für Thumbs
    public  $oldw;         // ursprüngliche Bildweite
    public  $oldh;         // ursprüngliche Bildhöhe
    public  $mime;         // Mime-Type JPG oder PNG
    public  $bilder;       // Pfad des eigentlichen Images
    public  $thumbs;       // Pfad für das Vorschaubild

    public function generiereThumbs() {

        $this->neuh = $this->oldh;
        $this->neuw = $this->oldw;

        /*-- Berechnung der Größe des Vorschaubildes ------------------------*/

        if ($this->oldh > $this->vorh){

            $this->neuh = $this->vorh;
            $this->proz = $this->oldh / $this->vorh;
            $this->neuw = round($this->oldw / $this->proz);
        }
        if ($this->oldw > $this->vorw){

            $this->neuw = $this->vorw;
            $this->proz = $this->oldw / $this->vorw;
            $this->neuh = round($this->oldh / $this->proz);
        }

        /*---------------------------------------------------------------------
         Erzeugung eines Vorschaubildes, Erzeugung eines Bildes im JPEG- oder
         PNG-Format aus einem vorhanden Bild, dieses kopieren und verkleinert
         unter einem neuen Namen oder in einem anderen Verzeichnis abspeichern.
         ----------------------------------------------------------------------
        */
        $istneu = imagecreatetruecolor($this->neuw, $this->neuh);

        if ($this->mime == "image/jpeg") {

            $istalt = imagecreatefromjpeg($this->bilder);
            imagecopyresized( $istneu, $istalt, 0, 0, 0, 0, $this->neuw, $this->neuh, $this->oldw, $this->oldh);
            imagejpeg($istneu, $this->thumbs);
        }
        if ($this->mime == "image/png"){

            $istalt = imagecreatefrompng($this->bilder);
            imagecopyresized( $istneu, $istalt, 0, 0, 0, 0, $this->neuw, $this->neuh, $this->oldw, $this->oldh);
            imagepng($istneu, $this->thumbs);
        }
        imagedestroy($istalt);
        imagedestroy($istneu);
    }
}

?>

Copyright © Verlag Horst Müller - Stendal - 2006 - Impressum - Datenschutz - Nutzungsbedingungen