提高PHP GD生成图像的质量

发布时间:2022-04-30 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了提高PHP GD生成图像的质量脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
我将开始使用GD库在 PHP中构建地图生成器.我使用lib生成了一些图像,但它们没有很好的质量.我只是想知道有一些方法可以提高图像的质量.

生成的图像是:

我的代码是:

<?PHP

$canvas = imagecreate(800,350);

imagecolorallocate($canvas,255,255);

$pink = imagecolorallocate($canvas,105,180);
$whITe = imagecolorallocate($canvas,255);
$green = imagecolorallocate($canvas,132,135,28);

imagestring( $canvas,20,290,25,"Quality is not the best :(",$green );
function drawlineBox($x1,$y1,$x2,$y2,$height,$color){
    global $canvas;
    imagesetthickness ( $canvas,1 );
    for ($i=1; $i < $height; $i++){
        imageline( $canvas,$x1,$color );
        $y1++; $y2++;
    }
}

drawlineBox(20,780,300,30,$green);
drawlineBox(20,$pink);
header('Content-tyPE: image/jpeg');
imagejpeg($canvas);
imagedestroy($canvas);

?>
imagejpeg [ docs]对图像质量进行论证.它认为75,但您可以将其增加到最多100个.例如:
imagejpeg($canvas,NULL,90);

但是,对于具有大量连续色彩和清晰线条的生成图形,JPEG可能不是最佳选择. PNG更适合这些类型的图像,并且可能会以更小的尺寸为您提供完美的质量. imagepng [docs]有几个选项,但认值应该没问题:

header('Content-Type: image/png');
imagepng($canvas);

您正在使用imagecreate [docs]来制作图像.这会创建一个“基于托盘”的图像:只能使用有限数量的颜色的图像.这与GIF或8位PNG的较低质量相匹配,但由于您不使用这些格式,您应该使用imagecreatetruecolor [docs].到目前为止,您的图像非常简单,这可能没什么区别,但是如果您生成更复杂的图像则会很重要.

如果您进行这两项更改,您的图像将确保具有完美的质量.

脚本宝典总结

以上是脚本宝典为你收集整理的提高PHP GD生成图像的质量全部内容,希望文章能够帮你解决提高PHP GD生成图像的质量所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。