Neue Version des Moduls Bilder-Galerie von Large Green Wood
Verfasst: Sa 17. Jan 2004, 00:43
				
				Auch wenn es schon genug ähnliche Modul gibt: Ich hab das Bilderbuch-Modul von Large Green Wood, vgl. http://www.contenido.de/front_dev/upload/1ImageGal.txt, so verändert, daß die Thumbnails über die GD-Libary erzeugt werden, wenn man keinen Pfad für ImageMagick angibt (z.B. weil es nicht verfügbar ist...)
Input:
Output:
mit Änderung imagecopyresampled statt imagecopyresized
Schöne Grüße
Robert
			Input:
siehe Original-Modul
http://www.contenido.de/front_dev/upload/1ImageGal.txt
Output:
mit Änderung imagecopyresampled statt imagecopyresized
Code: Alles auswählen
<?
// Bildergalerie
// Imageresize über ImageMagick *ODER* GD
// Version: 15.01.2004
//
// Author: Large Green Wood  vgl. http://www.contenido.de/front_dev/upload/1ImageGal.txt
// Modified by: Robert Strouhal www.clearcreative.de
echo "<p>\n";
// ANFANG OUTPUT
$imagedir="CMS_VALUE[2]";
$thumbnails="CMS_VALUE[3]";
$imagetypes=explode(";","CMS_VALUE[4]");
$rows="CMS_VALUE[6]";
$cols="CMS_VALUE[5]";
$thb_x_size="CMS_VALUE[7]";
$thb_y_size="CMS_VALUE[8]";
$image_idcat="CMS_VALUE[0]";
$image_idside="CMS_VALUE[1]";
$im_path="CMS_VALUE[9]";
//-- config ende -------------------------------------
function is_image($filename,$typearray) {
  reset($typearray);
  while($val=each($typearray)) {
     if (strstr($filename,$val[value])!==false) {
       return true;
     }
  }
}
// verkleinert ein Bild auf die angegebene Breite (bei Querformat) oder Höhe (bei Hochformat)
// Seitenverhältnisse werden beibehalten
function resizeImageGD($sourceFile, $targetFile, $newwidth=50, $newheight=50){
	$source = ImageCreateFromJpeg($sourceFile);
	$width  = ImageSx($source);
	$height = ImageSy($source);
	if ($width > $height){ // Querformat
		$newheight = $height*($newwidth/$width);
	}else{ // Hochformat
		$newwidth  = $width*($newheight/$height);
	}
	$target = ImageCreateTrueColor($newwidth,$newheight);
	// ÄNDERUNG vgl. Forums-Beitrag imagecopyresized ($target, $source, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);
	imagecopyresampled ($target, $source, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);
	ImageJPEG($target,$targetFile,100);
}
//-- functions ende ----------------------------------
if (!isset($mmstart)) {
  $mmstart=0;
}
// Anzeige eines Bildes oder Übersicht?
if ($subfile!="") {
// Bild anzeigen
 echo "<center><a href=\"javascript:history.back()\">zurück</a></center>";
 echo "<br>";
 echo "<img src=\"$subfile\">";
 echo "<br>";
 echo "<center><a href=\"javascript:history.back()\">zurück</a></center>";
} else {
// Gallery anzeigen
$handle=opendir($imagedir);
echo "<table>";
$n=0;
$filearray=Array();
while (false !== ($file = readdir($handle))) {
        if ($file != "." && $file != ".." && is_image($file,$imagetypes)) {
             $filearray[]=$file;
        }
}
reset($filearray);
// skip images...
for ($n=0;$n<$mmstart;$n++)
  $ffile=each($filearray);
$n=0;
while ($ffile=each($filearray)) {
             $file=$ffile[value];
             // generate thumbnail, if nessesairy. Now THIS is fun :)
             // natuerlich nur, wenn imagemagick vorhanden ist...
            if (!file_exists($thumbnails."/thb_".$file) ) {
               if ($im_path!="") {
                 $cmd=$im_path."/convert -scale ".$thb_x_size."x".$thb_y_size." ".$imagedir."/".$file." ".$thumbnails."/thb_".$file;
                 exec($cmd);
                 // nochmal prüfen!
                 $thumbnail=file_exists($thumbnails."/thb_".$file);
                } else{
                 // Bilder mit GD verkleinern
				 @ini_set("max_execution_time", 120);
                 @resizeImageGD($imagedir."/".$file, $thumbnails."/thb_".$file, $thb_x_size,$thb_y_size);
                 $thumbnail=file_exists($thumbnails."/thb_".$file);
                }
            } else
              $thumbnail=true;
            if ($n%$cols==0)
              echo "<tr>\n";
            if ($image_idcat!=0)
              $url=$sess->url("front_content.php?client=$client&lang=$lang&subid=$subid&idcatside=$image_idcat&subfile=".rawurlencode($imagedir."/".$file));
            else
              $url=$sess->url("front_content.php?client=$client&lang=$lang&subid=$subid&idcat=$idcat&idart=$idart&idside=$idside&subfile=".rawurlencode($imagedir."/".$file));
            echo "<td valign=\"middle\" align=\"center\" width=\"$thb_x_size\" height=\"$thb_y_size\"><a href=\"$url\">".($thumbnail ? "<img src=\"$thumbnails/thb_$file\" border=\"0\">":"$file")."</a></td>\n";
            $n++;
            if ($n%$cols==0)
              echo "</tr>\n";
        // nur solange wie's not tut...
        if ($n>=$rows*$cols)
          break;
    }
echo "<tr> <td colspan=\"$cols\" align=\"center\">";
if ($mmstart>0) {
  $url=$sess->url("front_content.php?client=$client&lang=$lang&idcat=$idcat&idart=$idart&subid=$subid&idside=$idside&mmstart=".($mmstart-$rows*$cols));
  echo "<a href=\"$url\">vorherige Bilder...</a>";
}
echo "<span style=\"font-size: 9pt;\">| zeige Bilder ".($mmstart+1)." - ".($mmstart+$n)." |</span>";
if ($n+$mmstart<count($filearray)) {
  $url=$sess->url("front_content.php?client=$client&lang=$lang&idcat=$idcat&idart=$idart&subid=$subid&idside=$idside&mmstart=".($mmstart+$rows*$cols));
  echo "<a href=\"$url\">weitere Bilder...</a>";
}
echo "</tr>\n";
echo "</table>";
} // Ende Gallery anzeigen
echo "</p>";
?>Schöne Grüße
Robert
 . sexy wär wenn man das auswählen könnte beim input... dort hats ja auch was (anzeigen in: "diese seite"). nur... wie krieg ich dort eine andere auswahl?!?
. sexy wär wenn man das auswählen könnte beim input... dort hats ja auch was (anzeigen in: "diese seite"). nur... wie krieg ich dort eine andere auswahl?!?