PHP-GD 绘图示例
/** * 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); }