首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用php创建jpg thumb

用php创建jpg thumb
EN

Stack Overflow用户
提问于 2010-04-12 19:57:53
回答 3查看 445关注 0票数 1

我在从上传的图像创建缩略图时遇到问题,我的问题是

(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。

任何帮助都将不胜感激。

代码语言:javascript
复制
 $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);
EN

回答 3

Stack Overflow用户

发布于 2010-04-12 20:35:14

每次创建缩略图时,图像的DPI都必须降低,因此不可能具有相同的质量,但是您可以检查imagecreatetruecolor (http://in2.php.net/manual/en/function.imagecreatetruecolor.php )以进行改进

票数 1
EN

Stack Overflow用户

发布于 2010-04-12 20:41:47

您使用了错误的图像高度变量。

代码语言:javascript
复制
imagecopyresized($targetImage,$sourceImage,0,0,0,0,$thumbWidth,$thumbWidth,imagesx($sourceImage),imagesy($sourceImage));

应该是:

代码语言:javascript
复制
imagecopyresized($targetImage,$sourceImage,0,0,0,0,$thumbWidth,$thumbHeight,imagesx($sourceImage),imagesy($sourceImage));

这应该会提高图像质量,但您应该使用imagecopyresampled来调整大小,并在保存到磁盘时使用imagejpeg()函数时使用quality参数。

票数 1
EN

Stack Overflow用户

发布于 2011-03-04 19:53:00

如果您使用Thumbnailer,您就不会担心。

代码语言:javascript
复制
$th=new Thumbnailer("your-photo.jpg");
$th->thumbSymmetricWidth(200)->save("your-thumb.jpg");

质量一流。你也可以绕过弯道。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2621816

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档