FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen   RegistrierenRegistrieren 
 ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin 

Thumbnails speichern

 
Neues Thema eröffnen   Neue Antwort erstellen    obsession-design.de Foren-Übersicht -> ODIG
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Sidcom



Anmeldedatum: 26.01.2010
Beiträge: 1

BeitragVerfasst am: 21.02.2010 17:13    Titel: Thumbnails speichern

Ich habe letztens das Script in die Finger bekommen und finde es sehr praktisch.

Nur, dass die Thumbs jedesmal aufs neue generiert werden, störte mich.

Da der Punkt auf der ToDo-Liste steht, hilft vielleicht folgender neue Code für die thumbnail.php weiter:

Code:

<?php
include 'admin/_config.php'; 
$image = $_GET['image'];
$folder = $_GET['folder'];
$imagethumb = $settings['image_loc'].$folder."/thumbs/".$image.".jpg";
$image = $folder."/".$image;
$image = $settings['image_loc'].$image;
$thumb = false;
$imagedata = getimagesize($image);
if($imagedata[0] > $settings['pre_width']){
  $x = $settings['pre_width'];
  $y = ($settings['pre_width'] / $imagedata[0]) * $imagedata[1];
  $y = round($y,0);       
}else{
  $x = $imagedata[0];
  $y = $imagedata[1];
}


// Check if you are in a subfolder ($folder is set).
if ($folder)
{
   $thumbsfolder=$settings['image_loc'].$folder."/thumbs";
   // Create "thumbs" directory if it doesn't exist.
   if(!file_exists($thumbsfolder)) mkdir($thumbsfolder, 0755);
}

// If there is a thumbimage use it.
if (file_exists($imagethumb))
{
   header('Content-Type: image/jpeg');
    $img = readfile($imagethumb);
   imageJPEG($img);
   imagedestroy($img);
   $thumb=true;
   break;
}
   
switch($imagedata[2]){
  case 1: //GIF   
    $src = ImageCreateFromGIF($image);
    $dst = ImageCreateTrueColor($x,$y);                   
    ImageCopyResampled($dst,$src,0,0,0,0,$x,$y,$imagedata[0],$imagedata[1]);         
    $bordercolor = ImageColorAllocate ($src, 0, 0, 0);
    imagerectangle($dst, 0, 0, $x-1, $y-1, $bordercolor);         
    header("Content-Type: image/jpeg");
    imageJPEG($dst,'',100);
    if(!$thumb) imageJPEG($dst, $imagethumb,100);
   imagedestroy($src);
    imagedestroy($dst);
  break;
 
  case 2: //JPG     
    $src = ImageCreateFromJPEG($image);
    $dst = ImageCreateTrueColor($x,$y);                   
    ImageCopyResampled($dst,$src,0,0,0,0,$x,$y,$imagedata[0],$imagedata[1]); 
    $bordercolor = ImageColorAllocate ($src, 0, 0, 0);
    imagerectangle($dst, 0, 0, $x-1, $y-1, $bordercolor);                 
    header("Content-Type: image/jpeg");
    imageJPEG($dst,'',100);
    if(!$thumb) imageJPEG($dst, $imagethumb,100);
    imagedestroy($src);
    imagedestroy($dst);
  break;
 
  case 3: //PNG     
    $src = ImageCreateFromPNG($image);
    $dst = ImageCreateTrueColor($x,$y);                   
    ImageCopyResampled($dst,$src,0,0,0,0,$x,$y,$imagedata[0],$imagedata[1]);   
    $bordercolor = ImageColorAllocate ($src, 0, 0, 0);
    imagerectangle($dst, 0, 0, $x-1, $y-1, $bordercolor);                 
    header("Content-Type: image/jpeg");
   imageJPEG($dst,'',100);
    if(!$thumb) imageJPEG($dst, $imagethumb,100);
    imagedestroy($src);
    imagedestroy($dst);
  break;
 
  default:
    die('Ung&uuml;ltiges Bild gefunden. Bitte wenden Sie sich an den Webmaster');
  break;
}
?>



Dabei wird jeweils ein Unterordner "thumbs" erstellt, in dem die Thumbs gespeichert werden.

Offene Punkte:
* Thumbs werden nicht aktualisiert, wenn das Bild aktualisiert wird
* Thumbs werden nicht gelöscht, wenn das Bild gelöscht wird.

Für meine Zwecke reicht es, wenn der entsprechende Thumb oder das ganze Verzeichnis bei Bedarf per Hand gelöscht wird.
Besser wäre natürlich irgendeine Überprüfung, die das automatisch macht.

Zusätzlich muss die Datei browsefolder_tdimg.html geändert werden, damit $folder und $image separat übergeben, statt als gemeinsame Variable.

Code:

<td align="center">
  <span class="smaller">
    <a href="{url}display.php?folder=$folder&amp;image=$image" target="_self"><img src="{url}thumbnail.php?folder=$folder&amp;image=$image" border="0" alt="Preview" /></a><br />
    $anz_comments Kommentare<br />
  </span>
</td>



mfg
Sidcom
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    obsession-design.de Foren-Übersicht -> ODIG Alle Zeiten sind GMT
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.


Powered by phpBB © 2001, 2005 phpBB Group