/**
* GD 画图示例
*/
public function index(){
//1. 绘制图像资源(创建一个画布)
$image = imagecreatetruecolor(436, 698);
//2. 设置图像的颜色 - 白色 做为背景色
$background_color = imagecolorallocate($image, 255, 255, 255);
//3. 使用白色填充画布
imagefill($image, 0, 0, $background_color);
//4. 设置图像的颜色 - 黑色 做为字体颜色
$hei = imagecolorallocate($image, 0, 0, 0);
//5.选择一个字体文件
$FontFile = 'QrCode/cn.ttf';
//定义填充画布的内容
$shop_name = '马化腾的小店';
$shop_logo = 'Upload/images/new/logo.png';
$shop_qr = 'Upload/images/new/qr.png';
$goods_img_1 = 'Upload/images/0DD443BB6FD97E3FCBEF9E01E223A56F.png';
$goods_img_2 = 'Upload/images/0EC90B8A3E9F20D2E4C98035201F5934.png';
$goods_img_3 = 'Upload/images/2DE0002953F5831FE9BFA2E56E49EB3E.png';
$goods_img_4 = 'Upload/images/2E7F0C8CA2C9C1E451E4BFCC5BBA0964.png';
//1.写入LOGO
$logos = imagecreatefrompng($shop_logo);//载入LOGO
list($w, $h) = getimagesize($shop_logo);//获取LOGO图片的宽、高
/**
* 拷贝图像
* @dst_image 目标图像
* @src_image 被拷贝的源图像
* @dst_x 目标图像开始 x 坐标
* @dst_y 目标图像开始 y 坐标,x,y同为 0 则从左上角开始
* @src_x 拷贝图像开始 x 坐标
* @src_y 拷贝图像开始 y 坐标,x,y同为 0 则从左上角开始拷贝
* @dst_w 设定载入的原图的宽度(在此设置缩放)
* @dst_h 设定载入的原图的高度(在此设置缩放)
* @src_w (从 src_x 开始)拷贝的宽度
* @src_h (从 src_y 开始)拷贝的高度
*/
imagecopyresized($image, $logos, 36, 28, 0, 0, 74, 74, $w, $h);
//2.写入LOGO旁边的小店名称
/**
* 绘制文字
* @image 目标图像
* @size 字体大小
* @angle 字体倾斜的角度
* @x 文字的x坐标
* @y 文字的y坐标
* @color 文字的颜色
* @fontfile 字体文件
* @text 绘制的文字
*/
imagettftext($image, 20, 0, 134, 65, $hei, $FontFile, $shop_name);
//3.写入第一张商品图
$goods_img_1s = imagecreatefrompng($goods_img_1);
list($w1, $h1) = getimagesize($goods_img_1);
imagecopyresized($image, $goods_img_1s, 20, 122, 0, 0, 186, 186, $w1, $h1);
//4.写入第二张商品图
$goods_img_2s = imagecreatefrompng($goods_img_2);
list($w2, $h2) = getimagesize($goods_img_2);
imagecopyresized($image, $goods_img_2s, 230, 122, 0, 0, 186, 186, $w2, $h2);
//5.写入第三张商品图
$goods_img_3s = imagecreatefrompng($goods_img_3);
list($w3, $h3) = getimagesize($goods_img_3);
imagecopyresized($image, $goods_img_3s, 20, 332, 0, 0, 186, 186, $w3, $h3);
//6.写入第四张商品图
$goods_img_4s = imagecreatefrompng($goods_img_4);
list($w4, $h4) = getimagesize($goods_img_4);
imagecopyresized($image, $goods_img_4s, 230, 332, 0, 0, 186, 186, $w4, $h4);
//7.写入底部小店名称
imagettftext($image, 16, 0, 20, 550, $hei, $FontFile, $shop_name);
//8.写入二维码
$codeIm = imagecreatefrompng($shop_qr);
list($w, $h) = getimagesize($shop_qr);
imagecopyresized($image, $codeIm, 300, 532, 0, 0, 100, 100, $w, $h);
//9.写入二维码下面的文字
imagettftext($image, 14, 0, 296, 638, $hei, $FontFile, '扫一扫或长按');
imagettftext($image, 14, 0, 300, 660, $hei, $FontFile, '识别二维码');
//在浏览器直接输出图像资源
header("Content-Type:image/jpeg");
imagejpeg($image);//输出图片
imagejpeg($image,'QrCode/shop_share.png');//保存图片
//销毁图像资源
imagedestroy($image);
}
PHP-GD 绘图示例
最新推荐文章于 2021-03-11 01:20:34 发布