我尝试使用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");
但它不起作用。我打赌那里的解决方案非常简单,但我无法找到它。
答案 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);
}
?>