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

 

PHP-GD 绘图示例