dedlfix: Blättern in Fotoalbum UND individuelle Foto-Auswahl

Beitrag lesen

echo $begrüßung;

Ich soll nicht so lange Postings erstellen, sagt die Forumssoftware, deswegen gibt es das Thumbnailerstellungsscript extra (ich hab es allerdings nur mit JPEG getestet). Es ist vorgesehen, dass dies einmalig für eine Galerie auszuführen ist. Das Thumbnail-Verzeichnis muss dazu vom Ausführenden (=Webserver) beschreibbar sein. Besser ist es, diesen Vorgang in der Entwicklungsumgebung auszuführen und die Thumbnails zusammen mit den großen Bildern hochzuladen, dann können sie wie alle anderen Dateien unter der Kennung des Users auf dem Server liegen.

<?php  
#error_reporting(E_ALL);  
  
header('Content-Type: text/plain');  
  
// Zum Erstellen der Thumbnails nachfolgende Zeile auskommentieren,  
// anschließend Kommentarzeichen wieder entfernen.  
die('Forbidden');  
  
// Aufruf des Scripts: makeThumbnails?path=galerieVerzeichnis  
// Diverse Konfiguationsmöglichkeiten gibt es in common.php.  
  
  
require_once 'common.php';  
  
// Größe der Thumbnails. 105:79 = 4:3 = 640:480  
define('SIZE_X', 105);  
define('SIZE_Y', 79);  
  
// Hochformat-Bilder werden nach links gedreht  
  
  
if (!is_dir(REAL_GALLERY_DIRECTORY))  
  error('Galerie-Pfad ist kein Verzeichnis', REAL_GALLERY_DIRECTORY);  
  
// Galerie-Basis-Pfad aus Galerie-Verzeichnis entfernen.  
if (strpos(REAL_GALLERY_DIRECTORY, REAL_GALLERY_BASE_PATH) === 0)  
  $galleryDirectory = rtrim(substr(REAL_GALLERY_DIRECTORY, strlen(REAL_GALLERY_BASE_PATH)), '/') . '/';  
else  
  trigger_error('Galerie-Verzeichnis außerhalb des DocumentRoot.', E_USER_ERROR);  
  // Wenn dieser Fehler ausgelöst wird, muss ein Zugriffsscript für die  
  // Bilddateien erstellt werden. Außerdem müssen einige Anpassungen bezüglich  
  // der Pfad-Ermittlung in diesem Script vorgenommen werden. Dies zu tun  
  // obliegt dem (fortgeschrittenen) Anwender.  
// $galleryDirectory enthält beispielsweise default/  
  
// Alle Dateien auf Bildinhalt testen  
foreach (glob(REAL_GALLERY_DIRECTORY . '/*', GLOB_NOSORT) as $filename)  
  // Wenn $filename kein Bild ist, erzeugt getimagesize() neben dem vom if  
  // berücksichtigten Rückgabewert false auch noch eine unerwünschte  
  // Notice-Meldung, die mit dem Fehlerkontrolloperator @ unterdrückt wird.  
  if ($imageInfo = @getimagesize($filename)) {  
    $thumbnailFilename = REAL_GALLERY_DIRECTORY . '/' . getThumbnailFilename(basename($filename));  
  
    list($width, $height, $type) = $imageInfo;  
    switch ($type) {  
      case IMAGETYPE_JPEG:  
        $image = imagecreatefromjpeg($filename);  
        break;  
      case IMAGETYPE_GIF:  
        $image = imagecreatefromgif($filename);  
        break;  
      case IMAGETYPE_PNG:  
        $image = imagecreatefrompng($filename);  
        break;  
      default:  
        error('Unbekannter Bild-Typ', $type);  
        continue;  
    }  
  
    if ($width > $height) { // Querformat  
      $thumbnail = imagecreatetruecolor(SIZE_X, SIZE_Y);  
      imagecopyresampled($thumbnail, $image, 0, 0, 0, 0, SIZE_X, SIZE_Y, $width, $height);  
    } else { // Hochformat  
      $thumbnailH = imagecreatetruecolor(SIZE_Y, SIZE_X);  
      imagecopyresampled($thumbnailH, $image, 0, 0, 0, 0, SIZE_Y, SIZE_X, $width, $height);  
  
      // drehe 90° nach links  
      $thumbnail = imagecreatetruecolor(SIZE_X, SIZE_Y);  
      for ($x = 0; $x < SIZE_Y; $x++)  
        for ($y = 0; $y < SIZE_X; $y++)  
          imagesetpixel($thumbnail, $y, SIZE_Y - $x - 1,  
            imagecolorat($thumbnailH, $x, $y));  
    }  
  
    switch ($type) {  
      case IMAGETYPE_JPEG:  
        $result = imagejpeg($thumbnail, $thumbnailFilename);  
        break;  
      case IMAGETYPE_GIF:  
        $result = imagegif($thumbnail, $thumbnailFilename);  
        break;  
      case IMAGETYPE_PNG:  
        $result = imagepng($thumbnail, $thumbnailFilename);  
        break;  
    }  
  
    imagedestroy($image);  
    imagedestroy($thumbnail);  
  
    echo $thumbnailFilename, ($result ? " erzeugt\n" : " fehlgeschlagen\n");  
    flush();  
  }  
  
  
echo "Fertig.\n";

echo "$verabschiedung $name";

0 53

Blättern in Fotoalbum UND individuelle Foto-Auswahl

juewi
  • javascript
  1. 0
    molily
    1. 0
      juewi
      1. 0
        molily
        1. 0

          Blättern in Fotoalbum UND individuelle Foto-Auswahl - ERLEDIGT

          juewi
      2. 0
        juewi
      3. 0
        molily
        1. 0
          juewi
          1. 0
            Patrick Andrieu
            1. 0
              Patrick Andrieu
              1. 0
                Patrick Andrieu
                1. 0
                  Patrick Andrieu
              2. 1
                Patrick Andrieu
                1. 1
                  dedlfix
                  • php
                  1. 0
                    dedlfix
                  2. 0
                    Patrick Andrieu
                  3. 0
                    Patrick Andrieu
                    1. 0
                      Patrick Andrieu
                      1. 0
                        juewi
                        1. 0
                          Patrick Andrieu
                    2. 0
                      juewi
                    3. 0
                      dedlfix
                      1. 0
                        Patrick Andrieu
                        1. 0
                          dedlfix
                          1. 0
                            Patrick Andrieu
              3. 0
                juewi
                1. 0
                  Patrick Andrieu
                  1. 0

                    Script-Variante von Patrick - perfetto!

                    juewi
                    1. 0
                      Patrick Andrieu
                      1. 0
                        juewi
                        1. 0
                          Patrick Andrieu
                          1. 0

                            Grafik-Ladezeit mit opacity und gif ersichtlich gemacht

                            juewi
                            1. 0
                              Patrick Andrieu
                              1. 0
                                juewi
                                1. 0
                                  juewi
                                  1. 0
                                    Patrick Andrieu
                                    1. 0
                                      juewi
                                      1. 0

                                        DANKE !

                                        juewi
                        2. 0
                          Patrick Andrieu
                          1. 0
                            Kai345
                            • menschelei
                  2. 0
                    molily
                    1. 0
                      Patrick Andrieu
                2. 0

                  An den Pranger Domain nicht erreichbar

                  Hans
                  • recht
                  1. 0
                    Patrick Andrieu
                    1. 0

                      Bechstubenverwachsler

                      Der Martin
                      • menschelei
                      1. 0
                        Patrick Andrieu
                        1. 0

                          Bechstubenverwachsler und andere Krankheiten

                          Der Martin
        2. 1
          molily
          1. 0
            Patrick Andrieu
          2. 0
            juewi
    2. 0

      Extrahieren von Link-Bestandteilen (SPLIT)

      juewi
      1. 0
        Struppi
        1. 0
          juewi