PHP图片操作,以及二维码生成(LOGO ,背景)

1、图片上放文字进行编辑。

<?php

/**
 * 设置请求头
 * 如果设置成  jpeg 的请求头 会直接输出图片
 */
header('Content-Type:text/html');
//创建图片的实例
$image= imagecreatefromstring(file_get_contents($imageURL));
//打上文字
$font = '/usr/share/fonts/chinese/simhei.ttf';//字体(写对应自己环境的 字体库路径)
//        $font = './simsun.ttc';//字体
$black = imagecolorallocate($image,0x00,0x00,0x00);//字体颜色
/**
 * 收据头
 * 第一个参数 图片资源
 * 第二个参数 字体大小
 * 第三个  字体的角度 一般用改动
 * 第四个 字体的 X 轴位置
 * 第五个  字体的Y轴位置
 * 第六个就是上面设定的颜色
 * 第七个就是你放的字体
 * 第八个 就是你要放的内容
 */
imagefttext($image,10,0,560,110, $black, $font, '你要放的文字');
//输出图片
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:text/html');
        imagejpeg($dst,'Prove/User/'.$phone.'a.jpg');
        break;
    case 3://PNG
        header('Content-Type: image/png');
        imagepng($dst,'Prove/User/'.$phone.'a.png');
        break;
    default:
        break;
}
imagedestroy($dst);
return true;
?>

2、生成二维码,并把二维码放到某一背景上,再加上中间的LOGO

<?php
/**
 * 设置请求头
 */
header('Content-Type: text/html');
/**
 * 生成二维码 商户IDa
 */
$url="URL";  //需要生成二维码的内容 或者连接
$path = "path";  //你的图片保存路径
/**
 * QrCode 生成 二维码参数
 * 第一个是 你要放置的URL连接
 * 第二个是你要保存图片的路径
 * 第三个 传你的二维码的容错级别 表示二维码可被覆盖的区域百分比
 * L(QR_ECLEVEL_L,7%),
 * M(QR_ECLEVEL_M,15%),Q(QR_ECLEVEL_Q,25%),
 * H(QR_ECLEVEL_H,30%)。
 * 第四个图片大小
 * 第五个二维码空白区大小
 * 第六个参数如果传TRUE 的话 第二个参数就是必传
 */
QRcode::png($url, $path, 'H', '4', '1', true);
// 这里 使用已经生成好的二维码之前最好 判断下 对应的文件是否存在
/**
 * LGGO路径
 */
$logo ="LOGO";
/**
 * 载入背景二维码资源
 */
$code_name_p = @imagecreatefrompng($path);
/**
 * 获取图像宽和高
 */
list($width, $height) = getimagesize($logo);
if (strrchr($logo, '.') == '.png') {
    /**
     * 载入logo图像资源
     */
    $logo_p = imagecreatefrompng($logo);
    /**
     * 将logo 放置在 背景上的 指定位置
     * 第一个参数 二维码资源。
     * 第二个参数 logo 图片资源
     * 第三个参数 目标点的x坐标
     * 第四个参数 目标点的y坐标
     * 第五个第六个 源点的x坐标 以及 源点的y坐标
     * 第七个第八个  logo 的大小
     */
    imagecopyresized($code_name_p, $logo_p, 80, 80, 0, 0, 60, 60, $width, $height);
    /**
     * 将图片保存
     */
    imagepng($code_name_p,"新的路径 ,该路径为带logo 的二维码存储路径");
} else if (strrchr($logo, '.') == '.jpg') {
    /**
     * 载入logo图像资源
     */
    $logo_p = imagecreatefromjpeg($logo);
    /**
     * 将logo 放置在 背景上的 指定位置
     * 第一个参数 二维码资源。
     * 第二个参数 logo 图片资源
     * 第三个参数 目标点的x坐标
     * 第四个参数 目标点的y坐标
     * 第五个第六个 源点的x坐标 以及 源点的y坐标
     * 第七个第八个  logo 的大小
     */
    imagecopyresized($code_name_p, $logo_p,80,80, 0, 0, 60, 60, $width, $height);
    /**
     * 将带logo的二维码图片保存 商铺ID b
     */
    imagepng($code_name_p,"新的路径 ,该路径为带logo 的二维码存储路径");
}
/**
 * 背景路径
 */
$back="";
/**
 * 带Logo二维码路径  商户ID b
 */
$NewPath= URL_SITE . "/Qrcode/code/" . $shop_id . "b.png";
/**
 * 载入背景图片资源
 */
$thumb = @imagecreatefromjpeg($back);
/**
 * 获取图像宽和高
 */
list($width, $height) = getimagesize($NewPath);
/**
 * 载入二维码图像资源
 */
$e_p= imagecreatefrompng($NewPath);
/**
 * 将二维码 放置在 背景上的 指定位置
 * 第一个参数 二维码资源。
 * 第二个参数 logo 图片资源
 * 第三个参数 目标点的x坐标
 * 第四个参数 目标点的y坐标
 * 第五个第六个 源点的x坐标 以及 源点的y坐标
 * 第七个第八个  logo 的大小
 */
imagecopyresized($thumb, $e_p, 10, 10, 0, 0, 10, 10, $width, $height);
/**
 * 将图片保存
 */
imagejpeg($thumb,"你最后要保存的路径,或者PNG也可以");
?>


猜你喜欢

转载自blog.csdn.net/qq_36421097/article/details/80310391
今日推荐