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="">'; }