Tumb Generator

progfxler

Gesperrt
Hi wie kann ich mit php sowas erstellen?

Also ich habe einen Ordner mit Bilder und möchte diese Bilder auf einer Seite anzeigen lassen :D

Thumb sollte in 100 x 75 und die Orginal Bilder in einer Größe von 800 x 600

naja es sollte dann so in etwa aussehen

Klicke Hier
 
Was man nicht so alles bei ein bischen gugelei findet...

Das hört man gern. Danke. :-)
 
Hallo Mentor Jonathan,

muss mich hier auch kurz mal in die Diskussion einklinken.

Das Script was du empfiehlst kenne ich und ich versuche da eine kleine
Änderung mit ein zu bringen was mir nicht so gut gelingt.
Da ich gelesen habe das du dieses Scriptchen supportes hätte ich
da eine kleine bitte bzw. frage.

Ich versuche meine Bilder die ich mit dem Script bearbeite
zu labeln mit einem definiertem Text von mir.

Nur irgenwas schnall ich da wohl nicht.

Hier der Code :

PHP:
<?php
     error_reporting(0);
 
     $types = array (1 => "gif", "jpeg", "png", "swf", "psd", "wbmp");

     define ('cache', 'cache/');

     $cachedir = substr($HTTP_GET_VARS['image'],0,strrpos($HTTP_GET_VARS['image'],'/') + 1).cache;
     !is_dir ($cachedir)
          ? mkdir ($cachedir, 0777)
          : system ("chmod 0777 ".$cachedir);

     (!isset ($x) || ereg ('^[0-9]{1,}$', $x, $regs)) &&
     (!isset ($y) || ereg ('^[0-9]{1,}$', $y, $regs)) &&
     (isset ($x) || isset ($y))
          ? true
          : die ('Fehlende(r) oder ungültige(r) Größenparameter!');

     !isset ($resize) || !ereg ('^[0|1]$', $resize, $regs)
          ? $resize = 0
          : $resize;

     !isset ($aspectratio) || !ereg ('^[0|1]$', $aspectratio, $regs)
          ? isset ($x) && isset ($y)
                 ? $aspectratio = 1
                 : $aspectratio = 0
          : $aspectratio;

     !isset ($image)
          ? die ('Es wurde kein Bild angegeben!')
          : !file_exists($image)
               ? die ('Die angegebene Datei konnte nicht auf dem Server gefunden werden!')
               : false;

     $imagedata = getimagesize($image);

     !$imagedata[2] || $imagedata[2] == 4 || $imagedata[2] == 5
          ? die ('Bei der angegebenen Datei handelt es sich nicht um ein Bild!')
          : false;
 
     eval ('
     if (!(imagetypes() & IMG_'.strtoupper($types[$imagedata[2]]).')) {
          DIE ("Das ".strtoupper($types[$imagedata[2]])."-Format wird nicht unterstützt!");
     }
     ');

     !isset ($x)
          ? $x = floor ($y * $imagedata[0] / $imagedata[1])
          : $x;
 
     !isset ($y)
          ? $y = floor ($x * $imagedata[1] / $imagedata[0])
          : $y;
 
     if ($aspectratio && isset ($HTTP_GET_VARS['x']) && isset ($HTTP_GET_VARS['y'])) {
          if ($imagedata[0] > $imagedata[1]) {
               $y = floor ($x * $imagedata[1] / $imagedata[0]);
          } else if ($imagedata[1] > $imagedata[0]) {
               $x = floor ($y * $imagedata[0] / $imagedata[1]);
          }
     }

     $thumbfile = substr ($HTTP_GET_VARS['image'], strrpos ($HTTP_GET_VARS['image'], '/') + 1);
     if (file_exists ($cachedir.$thumbfile)) {
          $thumbdata = getimagesize ($cachedir.$thumbfile);
          $thumbdata[0] == $x && $thumbdata[1] == $y
               ? $iscached = true
               : $iscached = false;
     } else {
          $iscached = false;
     }

     if (!$iscached) {
          ($imagedata[0] > $x || $imagedata[1] > $y) ||
          (($imagedata[0] < $x || $imagedata[1] < $y) && $resize)
               ? $makethumb = true
               : $makethumb = false;
     } else {
          $makethumb = false;
     }
     header ("Content-Type: image/".$types[$imagedata[2]]);

     if ($makethumb) {
          $image = call_user_func("imagecreatefrom".$types[$imagedata[2]], $image);
          $thumb = imagecreate ($x, $y);
		  
          imagecopyresized ($thumb, $image, 0, 0, 0, 0, $x, $y, $imagedata[0], $imagedata[1]);

// habe ich ab hier eingefuegt um text ins bild zu bringen.	  
$farbe = imagecolorallocate ($thumb, 255, 255, 255);
imagettftext ($thumb, 20, 0, 10, 20, $farbe, "verdana.ttf", "Test");
// bis hier

          call_user_func("image".$types[$imagedata[2]], $thumb, $cachedir.$thumbfile);
          imagedestroy ($image);
          imagedestroy ($thumb);
          $image = $cachedir.$thumbfile;
     } else {
          $iscached
               ? $image = $cachedir.$thumbfile
               : $image = $HTTP_GET_VARS['image'];
     }

     $image = fopen ($image, "rb");
     fpassthru ($image);
     fclose ($image);
 
?>

Was stimmt da nicht ?
Wieso kommt da kein Text auf mein Bild ?

Vielen Dank !


euer SaTaN

P.S. Dieses Script ist nur zu empfehlen.
 
Hallo,

das Script von gestern habe ich hier mal ein Teil
von raus kopiert und mal versucht Text hinzu zufügen.
Es gelingt mir leider nicht.
Der Text wird einfach nicht weiss, sondern wird Blau.
Dann lässt es sich nicht positionieren.



PHP:
     if ($makethumb) {
          $image = call_user_func("imagecreatefrom".$types[$imagedata[2]], $image);
          $thumb = imagecreate ($x, $y);

// von mir hier eingetragen für text		  
$white = imagecolorallocate($image, 255, 255, 255);
$font = $_SERVER["DOCUMENT_ROOT"] . "/verdana.ttf";
$text = "Mein Text";
imagettftext($image, 80, 45, 40, 400, $white, $font, $text);		  
// bis hier

          imagecopyresized ($thumb, $image, 0, 0, 0, 0, $x, $y, $imagedata[0], $imagedata[1]);		  
          call_user_func("image".$types[$imagedata[2]], $thumb, $cachedir.$thumbfile);
          imagedestroy ($image);
          imagedestroy ($thumb);
          $image = $cachedir.$thumbfile;
     } else {
          $iscached
               ? $image = $cachedir.$thumbfile
               : $image = $HTTP_GET_VARS['image'];
     }
     $image = fopen ($image, "rb");
     fpassthru ($image);
     fclose ($image);

Hier mal ein Link zum gucken.

Mal schauen bitte

Was stimmt daran nicht ?


Bitte um Hilfe.

Vielen Dank

euer SaTaN
 
Zurück