How to use thumb generator inside PHP script

痴心易碎 提交于 2019-12-20 04:52:31

问题


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 work inside a php script that saves some variables to database? I tried to include

header("Location: http://www.zubrag.com/thumb.php?src=http://www.test.com/test.jpg&dest=thumb.jpg&x=100&y=50"); 

but it doesn't work. I bet there's really easy solution but I can't find it.


回答1:


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.




回答2:


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.




回答3:


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"/>



回答4:


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);
}
?> 


来源:https://stackoverflow.com/questions/9349313/how-to-use-thumb-generator-inside-php-script

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!