本文操作环境:windows7系统、PHP7.1版、DELL G3电脑
如何解决php gd库失真问题?
PHP基于GD绘图时图像失真问题
这两天做一个小东西,图片叠加组合成新的图。切图用的是copper插件,出来的效果惨不忍睹。 图片是失真的,失真情况类似于网上的GIF动图那种细节颜色的丢失。于是在网上找到了以下解决办法,亲测有效。
最关键的一步是用 imagecreatetruecolor(a,b)函数创建一个与背景图大小相同的画布。
$bgimg = imagecreatetruecolor(imagesx($im), imagesy($im));
以这个$bgimg为低,通过
imagecopymerge($bgimg,$im, 0, 0, 0, 0,imagesx($im),imagesy($im), 100);
将原来扣好的底图$im盖上去,然后就根据实际需求向上盖需要的图片。
当然加文字也是可以的。
imagefttext($bgimg, $name_font, 0, $name_orginX ,$name_orginY, $color, $font, $name);
最后
header('Content-type: image/png');
header('Content-type: image/jpg');
$result = imagepng($bgimg);
imagedestroy($bgimg);
这个不是全部的代码,不过了解GD的应该知道这段代码放在哪。