简体   繁体   中英

How to use thumb generator inside PHP script

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.

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.

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.

如果没有任何关于特定发生器的个人先前经验,您将需要显示图像的形式为:

<img src="thumb.php?src=link/to/image.jpg&x=100&y=50&f=0"/>

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

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM