• GD 拓展库笔记


    GD 拓展库笔记

    getimagesize(url); // 获取图片的尺寸
    imagecolorallocate(图片流, R, G, B); // 为指定图片流设置颜色
    imagecopy(背景图片, 源图片, 背景图片开始X, 背景图片开始Y, 源图片X, 源图片Y, 截取图片X, 截取图片Y); // 图片合并
    imagejpeg(图片流); 将背景图片输出到屏幕
    imagettftext($img_bg, 14, 0, 190, 930, $color, TTF, "《一瞬间的灿烂》"); // 想图片中加入文字
    
    图片操作
    // PHP 使用 GD 拓展库制作图像
    // 指定输出为 JPEG 图片
    define('TTF', '/phpStudy/PHPTutorial/WWW/FZZJ-HFXCJW.TTF');
    //header('Content-type:image/jpeg');
    $img_bg = imagecreatefromjpeg('bg1.jpg');
    $img_mini_wine = imagecreatefrompng('mini_wine.png');
    // 将小酒图片组装到背景图片上
    imagecopy($img_bg, $img_mini_wine, 0, 0, 0, 0, 750, 1334);
    // 图片大小355 * 290 开始X=195 Y=608
    
    /*
     * 将用户上传的图片进行处理,转化成适合大小的图片
     */
    $img_user_bg = imagecreatefromjpeg('user_bg.jpg');
    $img_user_size = getimagesize('user_bg.jpg');
    $img_user_res = imagecreatetruecolor(355, 290);
    imagecopyresampled($img_user_res, $img_user_bg, 0, 0, 0, 0, 355, 290, $img_user_size[0], $img_user_size[1]);
    // 将用户的图片组装到背景图片上
    imagecopy($img_bg, $img_user_res, 195, 608, 0, 0, 355, 290);
    // 颜色
    $color = imagecolorallocate($img_bg, 1, 2, 3);
    // 标题 开始X=190 Y=930
    imagettftext($img_bg, 14, 0, 190, 930, $color, TTF, "《一瞬间的灿烂》");
    // 落款 开始Y=1030
    $inscribe_box = imagettfbbox(14, 0, TTF, "———— 夏天");
    $inscribe_x = 585 - ($inscribe_box[2] - $inscribe_box[0]);
    imagettftext($img_bg, 14, 0, $inscribe_x, 1030, $color, TTF, "—— 夏天");
    // 描述 开始Y=930
    $desc = <<<CONTENCE
    烟花的美丽
    如此短暂
    却如此奔放
    CONTENCE;
    $desc_arr = explode("
    ", $desc);
    $desc_y = 930;
    foreach ($desc_arr as $item) {
        $desc_box = imagettfbbox(13, 0, TTF, $item);
        $desc_x = 548 - ($desc_box[2] - $desc_box[0]);
        imagettftext($img_bg, 13, 0, $desc_x, $desc_y, $color, TTF, $item);
        $desc_y += 20;
    }
    
    // imagecolorallocate() 得到颜色资源
            //$color = imagecolorallocate($img, 1, 2, 3);
    // imagettfbbox() 返回文本边框的四个角
    //var_dump(imagettfbbox(24, 0, '/phpStudy/PHPTutorial/WWW/FZZJ-HFXCJW.TTF', '字体'));
    // imagettftext() 向图像资源写入文字 通过 
     可以实现换行
            //imagettftext($img, 24, 0, 100, 100, $color, '/phpStudy/PHPTutorial/WWW/FZZJ-HFXCJW.TTF', "屁猪猪只能我爱你哟");
    // 获取图片的宽
    //var_dump(imagesx($img));
    // 获取图片的高
    //var_dump(imagesy($img));
    
    imagejpeg($img_bg, 'res.jpg');
    imagedestroy($img_bg);
    imagedestroy($img_mini_wine);
    imagedestroy($img_user_bg);
    imagedestroy($img_user_res);
    
  • 相关阅读:
    第09组 Beta冲刺(3/4)
    第09组 Beta冲刺(2/4)
    第09组 Beta冲刺(1/4)
    第09组 Alpha事后诸葛亮
    王之泰201771010131《面向对象程序设计(java)》第一周学习总结
    正则表达式
    单逻辑运算符和双逻辑运算符的不同之处
    C++11 Java基本数据类型以及转换
    Java中赋值常量的注意事项
    程序命名规则
  • 原文地址:https://www.cnblogs.com/GetcharZp/p/12300057.html
Copyright © 2020-2023  润新知