How to use thumb generator inside PHP script

前端 未结 4 505
一向
一向 2021-01-26 18:39

I\'m trying to use this thumbnail generator, but as you can see you have to go through this link to create an image thumb. This is maybe a dumb question, but how do I get it wor

相关标签:
4条回答
  • 2021-01-26 19:27

    Without any personal prior experience with the particular generator, what you will need to display an image will be something in the form of:

    <img src="thumb.php?src=link/to/image.jpg&x=100&y=50&f=0"/>
    
    0 讨论(0)
  • 2021-01-26 19:34

    I think you misread the instructions. It's not a web service but a PHP script you have to install to your server. The zubrag.com url is just an example, you replace it with your own site's url.

    0 讨论(0)
  • 2021-01-26 19:34

    You can try this

    <?
    
    $property_id = 1; // for our little example here
    
    define("_IMAGE_PATH","property_images/");
    // max dimensions allowed:
    define("_IMAGE_WIDTH","640");
    define("_IMAGE_HEIGHT","480");
    define("_IMAGE_THUMB_WIDTH","100");
    define("_IMAGE_THUMB_HEIGHT","75");
    
    
    // grab the path to the temporary file (image) that the user uploaded
    $photo = $_FILES['new_image']['tmp_name'];
    // check if it exists
    if(is_uploaded_file($photo)){
        //the real image file name
        $real_name = strtolower($_FILES['new_image']['name']);
        // image type based on image file name extension:
        if(strstr($real_name,".png")){
            $image_type = "png";
        }else if(strstr($real_name,".jpg")){
            $image_type = "jpg";
        }else if(strstr($real_name,".gif")){
            $image_type = "gif";
        }else{
            die("Unsupported image type");
        }
    
        // find the next image name we are going to save
        $x=1;
        while(true){
            $image_name = _IMAGE_PATH."${property_id}/${x}.jpg";
            if(!is_file($image_name))break;
            $x++;
        }
    
        // start processing the main bigger image:
        $max_width = _IMAGE_WIDTH; $max_height = _IMAGE_HEIGHT;
        $size = getimagesize($photo);
        $width = $size[0];
        $height = $size[1];
        $x_ratio = $max_width / $width;
        $y_ratio = $max_height / $height;
        if(($width <= $max_width)&&($height <= $max_height)){
            $tn_width = $width;
            $tn_height = $height;
        }else{
            if(($x_ratio * $height) < $max_height){
                $tn_height = ceil($x_ratio * $height);
                $tn_width = $max_width;
            }else{
                $tn_width = ceil($y_ratio * $width);
                $tn_height = $max_height;
            }
        }
        switch($image_type){
            case "png": $src=imagecreatefrompng($photo); break;
            case "jpg": $src=imagecreatefromjpeg($photo); break;
            case "gif": $src=imagecreatefromgif($photo); break;
        }
        // destination resized image:
        $dst = imagecreatetruecolor($tn_width, $tn_height);
        // resize original image onto $dst
        imagecopyresampled($dst, $src, 0, 0, 0, 0, $tn_width, $tn_height, $width, $height);
        // write the final jpeg image..
        imagejpeg($dst, $image_name, 100) or die("Error: your photo
        has not been saved. Please contact the administrator");
        // time to clean up
        imagedestroy($src);
        imagedestroy($dst);
    
    
        // and now we do it alll again for the thumbnail:
        $max_width = _IMAGE_THUMB_WIDTH; $max_height = _IMAGE_THUMB_HEIGHT;
        $size = GetImageSize($photo);
        $width = $size[0];
        $height = $size[1];
        $x_ratio = $max_width / $width;
        $y_ratio = $max_height / $height;
        if(($width <= $max_width)&&($height <= $max_height)){
            $tn_width = $width;
            $tn_height = $height;
        }else{
            if(($x_ratio * $height) < $max_height){
                $tn_height = ceil($x_ratio * $height);
                $tn_width = $max_width;
            }else{
                $tn_width = ceil($y_ratio * $width);
                $tn_height = $max_height;
            }
        }
        switch($image_type){
            case "png": $src=imagecreatefrompng($photo); break;
            case "jpg": $src=imagecreatefromjpeg($photo); break;
            case "gif": $src=imagecreatefromgif($photo); break;
        }
        $dst = imagecreatetruecolor($tn_width, $tn_height);
        imagecopyresampled($dst, $src, 0, 0, 0, 0, $tn_width, $tn_height, $width, $height);
        $thumbfile = $image_name . ".thumb.jpg";
        if(file_exists($thumbfile))unlink($thumbfile);
        imagejpeg($dst, $thumbfile, 100) or die("Error: your photo thumb has not been saved.
           Please contact the administrator");
        imagedestroy($src);
        imagedestroy($dst);
    }
    ?> 
    
    0 讨论(0)
  • 2021-01-26 19:35

    I really can't see your problem...

    Do you want to do more than making a thumb at a line where you are calling the script? Just put out the lines of code from the thumb.php and use it in your script.

    include('image.class.php');
    
    $img = new Zubrag_image;
    
    // initialize
    $img->max_x        = $max_x;
    $img->max_y        = $max_y;
    $img->cut_x        = $cut_x;
    $img->cut_y        = $cut_y;
    $img->quality      = $image_quality;
    $img->save_to_file = $save_to_file;
    $img->image_type   = $image_type;
    
    // generate thumbnail
    $img->GenerateThumbFile($images_folder . $from_name, $thumbs_folder . $to_name);
    

    you only have to change the values with your desired one... this should work in my short review of the script.

    0 讨论(0)
提交回复
热议问题