我在从上传的图像创建缩略图时遇到问题,我的问题是
(i)品质(ii)作物
http://welovethedesign.com.cluster.cwcs.co.uk/phpimages/large.jpg http://welovethedesign.com.cluster.cwcs.co.uk/phpimages/thumb.jpg
如果你看起来质量非常差,裁剪是从顶部取的,并不是原始图像的调整大小,尽管尺寸意味着它是成比例的。
最初的版本是1100px high的1600px wide。
任何帮助都将不胜感激。
$thumb =
$targetPath."Thumbs/".$fileName;
$imgsize =
getimagesize($targetFile); $image =
imagecreatefromjpeg($targetFile);
$width = 200; //New width of image
$height = 138; //This maintains
proportions
$src_w = $imgsize[0]; $src_h =
$imgsize[1];
$thumbWidth = 200; $thumbHeight =
138; // Intended dimension of thumb
// Beyond this point is simply code.
$sourceImage =
imagecreatefromjpeg($targetFile);
$sourceWidth = imagesx($sourceImage);
$sourceHeight = imagesy($sourceImage);
$targetImage =
imagecreate($thumbWidth,$thumbHeight);
imagecopyresized($targetImage,$sourceImage,0,0,0,0,$thumbWidth,$thumbWidth,imagesx($sourceImage),imagesy($sourceImage));
//imagejpeg($targetImage,
"$thumbPath/$thumbName");
imagejpeg($targetImage, $thumb);
chmod($thumb, 0755);发布于 2010-04-12 20:35:14
每次创建缩略图时,图像的DPI都必须降低,因此不可能具有相同的质量,但是您可以检查imagecreatetruecolor (http://in2.php.net/manual/en/function.imagecreatetruecolor.php )以进行改进
发布于 2010-04-12 20:41:47
您使用了错误的图像高度变量。
imagecopyresized($targetImage,$sourceImage,0,0,0,0,$thumbWidth,$thumbWidth,imagesx($sourceImage),imagesy($sourceImage));应该是:
imagecopyresized($targetImage,$sourceImage,0,0,0,0,$thumbWidth,$thumbHeight,imagesx($sourceImage),imagesy($sourceImage));这应该会提高图像质量,但您应该使用imagecopyresampled来调整大小,并在保存到磁盘时使用imagejpeg()函数时使用quality参数。
发布于 2011-03-04 19:53:00
如果您使用Thumbnailer,您就不会担心。
$th=new Thumbnailer("your-photo.jpg");
$th->thumbSymmetricWidth(200)->save("your-thumb.jpg");质量一流。你也可以绕过弯道。
https://stackoverflow.com/questions/2621816
复制相似问题