欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

如何 php 在二维码上添加部分透明的logo

程序员文章站 2022-05-11 09:20:10
...
这是用的二维码

做了一张四角和中心透明的、白色边框的图片用来嵌入到二维码图片里
但是合成后原来中心黑白的位置全变成透明,如下图

这种情况如何处理,代码如下
list($qrwidth,$qrheight) = getimagesize($imgs['qrcode']);
list($bowidth,$boheight) = getimagesize($imgs['border']);
$QR = imagecreatefrompng($imgs['qrcode']);
$border = imagecreatefrompng($imgs['border']);
$logo_qr_width = $qrwidth / 5;
$scale = $logo_width/$logo_qr_width;
$logo_qr_height = $logo_height/$scale;
$from_width = ($qrwidth - $logo_qr_width) / 2;
imagesavealpha($border,true);
imagecopyresampled($QR, $border, $from_width, $from_width, 0, 0, $logo_qr_width,$logo_qr_height, $bowidth, $boheight);
Header("Content-type: image/png");
ImagePng($QR);


回复讨论(解决方案)

这个效果?

$QR = imagecreatefrompng('http://img.bbs.csdn.net/upload/201601/04/1451892452_282416.jpg');$border = imagecreatefrompng('http://img.bbs.csdn.net/upload/201601/04/1451892077_864770.png');list($qrwidth, $qrheight) = array(imagesx($QR), imagesy($QR));list($bowidth, $boheight) = array(imagesx($border), imagesy($border));$logo_qr_width = $qrwidth / 5;$scale = $bowidth/$logo_qr_width;$logo_qr_height = $boheight/$scale;$from_width = ($qrwidth - $logo_qr_width) / 2;imagesavealpha($border,true);imagecolortransparent($border, imagecolorat($border, 1, 1));imagecopyresampled($QR, $border, $from_width, $from_width, 0, 0, $logo_qr_width,$logo_qr_height, $bowidth, $boheight);ImagePng($QR);

其实直接在 $QR 上画图不是更简单?

其实直接在 $QR 上画图不是更简单?


确实是上面的效果,刚接触php的画图,还不太了解


这个效果?

$QR = imagecreatefrompng('http://img.bbs.csdn.net/upload/201601/04/1451892452_282416.jpg');$border = imagecreatefrompng('http://img.bbs.csdn.net/upload/201601/04/1451892077_864770.png');list($qrwidth, $qrheight) = array(imagesx($QR), imagesy($QR));list($bowidth, $boheight) = array(imagesx($border), imagesy($border));$logo_qr_width = $qrwidth / 5;$scale = $bowidth/$logo_qr_width;$logo_qr_height = $boheight/$scale;$from_width = ($qrwidth - $logo_qr_width) / 2;imagesavealpha($border,true);imagecolortransparent($border, imagecolorat($border, 1, 1));imagecopyresampled($QR, $border, $from_width, $from_width, 0, 0, $logo_qr_width,$logo_qr_height, $bowidth, $boheight);ImagePng($QR);


好评,确实是上面的效果,刚接触php的画图,还有很多函数不太了解