资讯专栏INFORMATION COLUMN

PHP 图片、文字合成

sugarmo / 1149人阅读

摘要:查询用户信息已经合成的不再重复生成生成原始二维码图网络路径原始二维码图的绝对路径准备好的模板图片已经生成的原始二维码图二维码图片宽度二维码图片高度图片合成保存到路径字体类型显示的文字我是设置字体颜色合成头像

//查询用户信息
$client = $this->where(array("id" => $client_id))->find();
        $client_avatar = $client["avatar"];
        $mine_code = $client["mine_code"];
        $have_code = is_file(SYS_ROOT_PATH . "uploadfiles/qrcode/{$mine_code}.png");
        //已经合成的不再重复生成
        if (!$have_code) {
        //生成原始二维码图
            $qrcode = sys_get_qrcode(SYS_ROOT . "index.php/Webservice/V100/register/mine_code/{$mine_code}", "uploadfiles/qrcode/{$mine_code}.png");//网络路径
            //原始二维码图的绝对路径
            $codeRealPath = SYS_ROOT_PATH . "uploadfiles/qrcode/{$mine_code}.png";
            $logo = SYS_ROOT_PATH . "uploadfiles/qrcode-min.png";//准备好的模板图片
            if ($qrcode) {
                $QR = $codeRealPath;//已经生成的原始二维码图
                $QR = imagecreatefromstring(file_get_contents($QR));
                $logo = imagecreatefromstring(file_get_contents($logo));
                $QR_width = imagesx($QR);//二维码图片宽度
                $QR_height = imagesy($QR);//二维码图片高度

                //图片合成
                imagecopyresampled($logo, $QR, 320, 1948, 0, 0, 445, 445, $QR_width, $QR_height);
                //保存到codeRealPath(路径)
                imagepng($logo, $codeRealPath);

                $path = $codeRealPath;

                if ($client["nickname"]) {
                    $img = imagecreatefromstring(file_get_contents($path));
                    //字体类型
                    $font = SYS_ROOT_PATH . "uploadfiles/font/wenrui.otf";
                    //显示的文字
                    $text = "我是" . $client["nickname"];           
                    //设置字体颜色
                    $black = imagecolorallocate($img, 255, 255, 255);
                    imagettftext($img, 26, 0, 470, 1890, $black, $font, $text);
                    imagepng($img, $path);
                }

                //合成头像
                if ($client_avatar && $client_avatar != "") {
                    $member_avatar = imagecreatefromstring(file_get_contents($client_avatar));
                } else {
                    $member_avatar = imagecreatefromstring(file_get_contents(SYS_ROOT_PATH . "uploadfiles/default_avatar.png"));
                }

                $img = imagecreatefromstring(file_get_contents($path));
                imagecopyresampled($img, $member_avatar, 500, 2125, 0, 0, 85, 85, imagesx($member_avatar), imagesx($member_avatar));
                imagepng($img, $path);
            }
        }

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/25640.html

相关文章

  • php图片水印处理

    摘要:在上周的工作中,第一次接触和了解对图像的相关处理。在图像的处理中主要依赖于拓展,其主要的操作方法可以参考手册,链接和图像处理。 在上周的工作中,第一次接触和了解php对图像的相关处理。php在图像的处理中主要依赖于GD拓展,其主要的操作方法可以参考php手册,链接:GD 和图像处理。我回顾了此次工作中的功能开发,封装了一个图像处理的相关类库。 Image类库 主体功能:图片合成,水印...

    sunnyxd 评论0 收藏0
  • PHP里很好的使用ImageMagick---convert篇

    摘要:指定字体和颜色创建一个底图创建一个白色的底图,我们可以在上面绘制文字创建一个底图并且加上一些文字要生成的图片的路径可以在服务器端看到这里需要注意一下文字的绘制命令顺序,否则会出现没有生效的问题。 [原文链接]https://duanruilong.github.io...://duanruilong.github.io/blog/2018/09/18/%E5%9C%A8PHP%E9%8...

    DTeam 评论0 收藏0
  • PHP里很好的使用ImageMagick---convert篇

    摘要:指定字体和颜色创建一个底图创建一个白色的底图,我们可以在上面绘制文字创建一个底图并且加上一些文字要生成的图片的路径可以在服务器端看到这里需要注意一下文字的绘制命令顺序,否则会出现没有生效的问题。 [原文链接]https://duanruilong.github.io...://duanruilong.github.io/blog/2018/09/18/%E5%9C%A8PHP%E9%8...

    miguel.jiang 评论0 收藏0
  • PHP图片处理之二维码加文字

    摘要:分析将链接生成二维码不难,直接即可解决。打开图片将生成的二维码图片按照路径打开,获取相关信息。销毁图片销毁生成的图片资源和生成的图片文件。 需求 客户商品管理系统,每个商品需要生成一个二维码以便手机直接扫描查看商品信息,而对应的,二维码下方必须有一串唯一码,它们存在于一张图片上,以方便用户另存打印贴纸(不相干细节省略)。 分析 将链接生成二维码不难,直接qrcode即可解决。 剩下的对...

    justjavac 评论0 收藏0
  • 通过li-canvas轻松实现单图、多图、圆角图绘制,单行文字、多行文字、竖向文字绘制,自动换行,保

    摘要:新增的是个强大的功能,估计大家平时都会用到,只是频率不高,偶尔用它合成图片,但是如果不进行封装的话,代码会很乱,所以对常用的画图绘制文字保存功能进行了封装,目前还比较满意,能够快速完成绘图任务,从容应对需求变更,只需进行简单配置即可。 Html5新增的canvas是个强大的功能, 估计大家平时都会用到,只是频率不高,偶尔用它合成图片,但是如果不进行封装的话,代码会很乱,所以对canva...

    source 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<