#1
  1. No Profile Picture
    Contributing User
    Devshed Newbie (0 - 499 posts)

    Join Date
    Feb 2003
    Posts
    349
    Rep Power
    15

    Converting PHP thumbnail generation script from GD to NETPBM


    I would like to use the following script within a larger application however by server does not support GD. However I do have the NETPBM binaries installed and working. ( for info on NETPBM go to http://netpbm.sourceforge.net )

    I need the following script to be modified so that it works with the NETPBM binaries insead of using GD.

    PHP Code:
    function thumbimage ($image$x$y$aspectratio$resize$cachedir){

              
    /*##############################################
              #          - Thumbnail-Script v1.3 -           #
              # Generating thumbnails 'on-the-fly' with PHP  #
              #                                              #
              #  (c) by Christian Lamine, FlashDreams OHG    #
              #                                              #
              # This script may be freely used, distributed  #
              # and modified without any charge as long as   #
              # this copyright information is included.      #
              #                                              #
              # Any commercial selling of this script is     #
              # forbidden.                                   #
              #                                              #
              # The author is not responsible for possible   #
              # damage which may result from the application #
              # of this script, neither direct nor indirect. #
              # Use at your own risk!                        #
              ##############################################*/

         
    error_reporting(0);

         
    $types = array (=> "gif""jpeg""png""swf""psd""wbmp");
         
    $not_supported_formats = array ("GIF"); // Write in capital Letters!!
         
    umask(0);
         !
    is_dir ($cachedir)
             ? 
    mkdir ($cachedir0777)
             : 
    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] == || $imagedata[2] == 5
              
    ? DIE ('Bei der angegebenen Datei handelt es sich nicht um ein Bild!')
              : 
    false;

         
    $imgtype="!(ImageTypes() & IMG_" strtoupper($types[$imagedata[2]]) . ")";
         if ((eval(
    $imgtype)) || (in_array(strtoupper(array_pop(explode('.'basename($image)))),$not_supported_formats))) {
             
    $image substr ($image, (strrpos (DIR_FS_CATALOG '/''/'))+1);
             return 
    $image;

         }

         if (!isset (
    $x)) $x floor ($y $imagedata[0] / $imagedata[1]);


         if (!isset (
    $y)) $y floor ($x $imagedata[1] / $imagedata[0]);

         if (
    $aspectratio && isset ($x) && isset ($y)) {
            if (((
    $imagedata[1]/$y) > ($imagedata[0]/$x) )){
                 
    $x=ceil(($imagedata[0]/$imagedata[1])* $y);
            } else {
                 
    $y=ceil($x/($imagedata[0]/$imagedata[1]));
            }
         }

         
    $thumbfile =  '/' basename($image);
         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;
         }



         if (
    $makethumb) {
              
    $image call_user_func("imagecreatefrom".$types[$imagedata[2]], $image);
              
    $thumb imagecreatetruecolor ($x$y);
              
    imagecopyresampled ($thumb$image0000$x$y$imagedata[0], $imagedata[1]);
              
    call_user_func("image".$types[$imagedata[2]], $thumb$cachedir.$thumbfile);
              
    imagedestroy ($image);
              
    imagedestroy ($thumb);
              
    $image DIR_WS_IMAGES 'imagecache' $thumbfile;
         } else {
              
    $iscached
                   
    $image DIR_WS_IMAGES 'imagecache' $thumbfile
                   
    $image substr ($image, (strrpos (DIR_FS_CATALOG '/''/'))+1);
         }
    return 
    $image;


  2. #2
  3. coding with style
    Devshed Beginner (1000 - 1499 posts)

    Join Date
    Mar 2003
    Location
    Washington
    Posts
    1,254
    Rep Power
    62
    Wow, sounds important. Good thing you posted it in the wrong place. This is a help forum. The hosts of devshed have graciously provided an appropriate forum to post this kind of request.

    http://forums.devshed.com/f40/s

    or, if you are willing to pay:

    http://forums.devshed.com/f57/s
    - Nycto

IMN logo majestic logo threadwatch logo seochat tools logo