垃圾堆中的精品

垃圾堆中的精品

利用 phpqrcode 生成带背景图的二维码

include('../phpqrcode/phpqrcode.php'); 
$url = 'http://www.baidu.com'; //二维码内容
$errorCorrectionLevel = 'H';//容错级别 
$matrixPointSize = 7;//生成图片大小 
//生成二维码图片 
$QR = rand(10000,99999).time().".png";
QRcode::png($url, $QR, $errorCorrectionLevel, $matrixPointSize, 2); 
$logo = '../images/logo.png';//准备好的logo图片
//生成时间戳处理覆盖图片防止权限的存在
// $op = time();
// $QR = 'qrcode.png';//已经生成的原始二维码图 
if ($logo !== FALSE) { 
    $QR = imagecreatefromstring(file_get_contents($QR)); 
    $logo = imagecreatefromstring(file_get_contents($logo)); 
    $QR_width = imagesx($QR);//二维码图片宽度 
    $QR_height = imagesy($QR);//二维码图片高度 
    $logo_width = imagesx($logo);//logo图片宽度 
    $logo_height = imagesy($logo);//logo图片高度 
    $logo_qr_width = $QR_width / 5; 
    $scale = $logo_width/$logo_qr_width; 
    $logo_qr_height = $logo_height/$scale; 
    $from_width = ($QR_width - $logo_qr_width) / 2; 
    //重新组合图片并调整大小 
    imagecopyresampled($QR, $logo, $from_width, $from_width, 0, 0, $logo_qr_width, 
    $logo_qr_height, $logo_width, $logo_height); 
} 
//输出图片 
$QIMG = rand(100000,999999).time().".png";
imagepng($QR, $QIMG); 

$dst_path = 'a.png';//底图
$src_path = $QIMG;//覆盖图

//创建图片的实例
$dst = imagecreatefromstring(file_get_contents($dst_path));
$src = imagecreatefromstring(file_get_contents($src_path));
//获取覆盖图图片的宽高
list($src_w, $src_h) = getimagesize($src_path);
//将覆盖图复制到目标图片上,最后个参数100是设置透明度(100是不透明),这里实现不透明效果,两个20是覆盖图坐标位置
imagecopymerge($dst, $src, 20, 20, 0, 0, $src_w, $src_h, 100);
//如果覆盖图图片本身带透明色,则使用imagecopy方法
//imagecopy($dst, $src, 10, 10, 0, 0, $src_w, $src_h);
//输出图片
list($dst_w, $dst_h, $dst_type) = getimagesize($dst_path);
switch ($dst_type) {
    case 1://GIF
        header('Content-Type: image/gif');
        imagegif($dst);
        break;
    case 2://JPG
        header('Content-Type: image/jpeg');
        imagejpeg($dst);
        break;
    case 3://PNG
          header('Content-Type: image/png');
        imagepng($dst);
        break;
    default:
        break;
    }
imagedestroy($dst);
imagedestroy($src);
 

评论回复

回到顶部