加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

提高PHP GD生成图像的质量

发布时间:2020-12-13 18:21:31 所属栏目:PHP教程 来源:网络整理
导读:我将开始使用GD库在 PHP中构建地图生成器.我使用lib生成了一些图像,但它们没有很好的质量.我只是想知道有一些方法可以提高图像的质量. 生成的图像是: 我的代码是: ?php$canvas = imagecreate(800,350);imagecolorallocate($canvas,255,255);$pink = imagec
我将开始使用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].到目前为止,您的图像非常简单,这可能没什么区别,但是如果您生成更复杂的图像则会很重要.

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读