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);
}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

凌晨四点的_LA

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值