如何在PHP脚本中使用拇指生成器

时间:2012-02-19 12:54:37

标签: php thumbnails

我尝试使用this缩略图生成器,但正如您所看到的,您必须通过this link来创建图像缩略图。这可能是一个愚蠢的问题,但我如何让它在一个PHP脚本中工作,将一些变量保存到数据库?我试图加入

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

但它不起作用。我打赌那里的解决方案非常简单,但我无法找到它。

4 个答案:

答案 0 :(得分:3)

我真的看不出你的问题......

你想做的不仅仅是在你调用脚本的行上做一个拇指吗?只需从thumb.php中输出代码行,然后在脚本中使用它。

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

你只需要改变你想要的值...这应该在我对脚本的简短回顾中起作用。

答案 1 :(得分:0)

我认为你误读了这些说明。它不是Web服务,而是您必须安装到服务器的PHP脚本。 zubrag.com网址只是一个示例,您可以将其替换为您自己网站的网址。

答案 2 :(得分:0)

如果没有使用特定生成器的任何个人经验,您需要显示图像的内容将是:

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

答案 3 :(得分:0)

你可以试试这个

<?

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