【问题标题】:PHP image cropping: blurry resultPHP图像裁剪:结果模糊
【发布时间】:2016-02-16 22:04:09
【问题描述】:

我正在使用imagecopyresampled 来调整(缩小)图像的大小,这恰好是一个 gif。图像包含的文本在调整大小时非常模糊。我不一定会介意,但是当在网页上显示原始图像时,以减小的尺寸,我的浏览器会按比例缩小它, 更好的结果。知道我可以做些什么来改进 PHP 生成的内容吗?

更新:这是我正在运行的代码示例:

$x1 = 0;
$y1 = 0;
$w1 = 196;
$h1 = 260;
$x2 = 0;
$y2 = 0;
$w2 = 140;
$h2 = 186;
$r1 = imagecreatefromgif($source);
$r2 = imagecreatetruecolor($w2, $h2);
imagealphablending($r2, false);
imagesavealpha($r2, true);
$res = imagecopyresampled($r2, $r1, $x2, $y2, $x1, $y1, $w2, $h2, $w1, $h1);
imagegif($r2, $dest);

以下是浏览器缩放的图像示例:

以下是使用上述代码缩放的图像示例:

【问题讨论】:

  • 您应该发布您的代码和一些示例图像(原始和调整大小),以便人们可以看到您实际在做什么。
  • 您是保留 GIF 格式还是更改为 JPEG?如果是这样,您可能需要将 JPEG 质量设置得更高。
  • @maxhb 会尽快完成
  • @davidethell 保存在 gif 中
  • 很难说,因为您的代码示例不完整——您没有提供 $w2 和 $h2。如果我使用您发布的图片的尺寸(338x426 和 324x394),效果会很好。

标签: php image


【解决方案1】:

尝试使用imagepng 而不是imagegifimagepng 第三个参数是质量。检查规格:http://php.net/manual/en/function.imagepng.php

【讨论】:

  • 这给出了基本相同的结果
【解决方案2】:

PHP 库不会产生最佳质量的调整大小操作,但是如果您坚持基于原始文件的比例,例如将 200x200 调整为 100x100 或 50x50 的大小,您可能会发现效果更好处理过程的简单数学运算(即将 2/4 像素合并为一个)。您当前的操作会产生模糊的结果,因为它将是一个随机值,例如缩放到原始大小的 0.63%。

【讨论】:

  • 明白。不幸的是,我实际上不能这样做,所以我必须满足于我得到的结果。您是否建议像 ImageMagick 库这样的东西会提供更好的结果?我仍然很惊讶浏览器能实时做到这一点,比 PHP 好得多。
  • 我从未使用过该库,但可能值得一试。令人失望的是,浏览器确实渲染得更好,但性能更好也不足为奇,因为它是浏览器的一个非常重要的特性,PHP 没有那么多。您可能想尝试以下方法:stackoverflow.com/questions/3708947/…
猜你喜欢
  • 1970-01-01
  • 2017-01-14
  • 2013-08-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-02-18
相关资源
最近更新 更多