PHP合成图片怎么保证清晰度?

PHP合成图片主要用的的函数  :

  •  imagecreatefromstring  //返回一个图像标识符,其表达了从给定字符串得来的图像。图像格式将自动检测,只要 PHP 支持:JPEG,PNG,GIF,WBMP 和 GD2。

  •  imageCreatetruecolor   //返回一个图像标识符,代表了一幅大小为 x_size 和 y_size 的黑色图像。

  •  imagecolorallocate       // 为一幅图像分配颜色

  •  imagecopyresampled   //实现图片缩放

  •  imagecopymerge        //合并图片

  • imagepng                    //生成png图片

$logo = './qrcode/a.png';  //准备好的logo图片
$QR = './a.png';           //已经生成的原始二维码图
if (file_exists($logo)) {
  $QR = imagecreatefromstring(file_get_contents($QR));//目标图象连接资源。
            
  $logo = imagecreatefromstring(file_get_contents($logo));//源图象连接资源。
            
  //创建一个和二维码图片一样大小的真彩色画布
  //(ps:只有这样才能保证后面copy装备图片的时候不会失真)
  $canvas = imageCreatetruecolor(imagesx($QR),imagesy($QR));
            
  //为真彩色画布创建白色背景,再设置为透明
  $color = imagecolorallocate($canvas, 255, 255, 255);
  imagefill($canvas, 0, 0, $color);
  //imageColorTransparent($canvas, $color); //可以设为透明背景
            
  //首先将二维码画布采样copy到真彩色画布中,不会失真
  imagecopyresampled($canvas,$QR,0,0,0,0,imagesx($QR),imagesy($QR),
  imagesx($QR),imagesy($QR));
            
  //再将装备图片copy到已经具有人物图像的真彩色画布中,同样也不会失真
  imagecopymerge($canvas,$logo,(imagesx($QR)-imagesx($logo))/2,
  (imagesy($QR)-imagesy($logo))/2,0,0,imagesx($logo),imagesy($logo), 100);
            
  //将画布保存到指定的png文件
            
  imagepng($canvas, './qrcode/'.'qrcode.png');
            
  imagedestroy($QR);
            
  imagedestroy($logo);
            
  return '<img src="'.'/qrcode/qrcode.png'.'" alt="">';
}

https://www.doadc.com/index/blog/detail/aid/86.html

转载于:https://my.oschina.net/u/3425662/blog/1822714

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值