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

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章