资讯专栏INFORMATION COLUMN

PHP的gd库处理图片

tianren124 / 3357人阅读

gd库为图片加文字水印和图片输出
$number = $result["certno"];//设置水印内容
        $file = "./Uploads/certs/" . $number . ".jpg";
        if(!is_file($file)){
            $src = "./template/public/img/zhengshu.jpg";//定义图片地址
            $info = getimagesize($src);//获取图片信息
            $type = image_type_to_extension($info[2], false);//通过编号获取图片类型
            $fun = "imagecreatefrom".$type;//在内存中创建一样的图像
            $image = $fun($src);//图片复制到内存
            $font = "./msyh.ttf";//设置字体路径
            $fontbd = "./msyhbd.ttf";//设置字体路径
            $content = $result["authname"];//设置水印内容
            $website = $result["auth_domains"];//设置水印内容

            //求出水印内容在使用字体下在图片的四个边框的xy坐标
            $version_fontarea1 = ImageTTFBBox(25,0,$fontbd,$version);
            $content_fontarea1 = ImageTTFBBox(25,0,$font,$content);
            $website_fontarea1 = ImageTTFBBox(12,0,$font,$website);

            $width = $info[0];//获取图片宽度
            //求出内容应该设置在图片中的位置(y左边我是自己一点点试的...x坐标是让水印内容两侧距离相等)
            $version_x = ($width - ($version_fontarea1[2] - $version_fontarea1[0])) / 2;
            $content_x = ($width - ($content_fontarea1[2] - $content_fontarea1[0])) / 2;
            $website_x = ($width - ($website_fontarea1[2] - $website_fontarea1[0])) / 2;

            $color = imagecolorallocatealpha($image, 75, 75, 75, 0);//设置颜色
            imagettftext($image, 11, 0, 105, 80, $color, $font, $number);
            imagettftext($image, 25, 0, $version_x, 350, $color, $fontbd, $version);
            imagettftext($image, 25, 0, $content_x, 520, $color, $font, $content);
            imagettftext($image, 12, 0, $website_x, 560, $color, $font, $website);
            //输出图片
            $fun = "image".$type;
            $fun($image, $file , 80);
            imagedestroy($image);
        }
        $data = file_get_contents($file);

代码中依然存在很大问题,因为这样的做法,意味着有多少个result,就会在文件夹中生成多少张图片。没有找到gd库直接从内存中获取图片内容的方法,迫不得已用这个方法

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

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

相关文章

  • php gd运用

    摘要:库库的功能比较强大,主要用来做图片验证码生成,绘制图片,处理图片等等。下面是简单的库绘制图片验证码代码示例白色结果即,就绘制成图片。可以验证了图片生成并保存在本地白色备注在例子中还需要字体插件可以在网上下载,并放到本地文件夹调用 1.gd库 php gd库的功能比较强大,主要用来做图片验证码生成,绘制图片,处理图片等等。下面是简单的gd库绘制图片验证码 代码示例 $size_x = 1...

    mykurisu 评论0 收藏0
  • PHP动态修改GD扩展问题

    摘要:我尝试用重新编译库扩展生成,但在中加入后重启,会报错。请安装库和在我索求答案无果后,我选择了重新编译,尴尬某站答案 编译PHP不带gd,后续添加gd模块 在生成图像验证码的时候我们会用到GD库进行images,我们先安装它.但是有时候,发现自己已经安装了GD库,但是验证码还是生成不了这个时候就得检查一下imagettftext这个函数了 http://php.net/manual/zh...

    ideaa 评论0 收藏0
  • Intervention/image 图片处理扩展包安装和使用

    摘要:本文经授权转自社区说明是为定制的图片处理工具它提供了一套易于表达的方式来创建编辑图片。 本文经授权转自 PHPHub 社区 说明 Intervention/image 是为 Laravel 定制的图片处理工具, 它提供了一套易于表达的方式来创建、编辑图片。 本文章由 The EST Group 成员 @monkey 撰写, 首发地为 PHPHub 社区. Demo 代码请见:https...

    princekin 评论0 收藏0
  • PHP_GD

    摘要:库画图的典型流程创建画布创建各种颜料绘画如,写字,画线,画矩形等形状保存成图片清理画布画线保存图片保存成功保存失败输出图片字母数字验证码画布中文验证码中文验证码实际项目中抽取几百个,几千个常用汉字,放数组里,随机选取的一是在了不和有 GD库画图的典型流程 创建画布 创建各种颜料 绘画(如,写字,画线,画矩形等形状) 保存成图片 清理画布 字母数字验证码 中文验证码 扭曲验证...

    KevinYan 评论0 收藏0
  • PHP GD 生成图片时,对于英文换行

    摘要:前言最近开发遇到后端生成图片时英文的换行贴代码字符串相关处理英文字符串换行如果是字母,并且到了换行的地方,则需要看这个字符的下一个字符是否是字母,如果是的话就需要回到上一个不是字母的地方注意中文和英文上一次出现不是字母的索引位置将单个字符存 前言 最近开发遇到后端生成图片时英文的换行 贴代码 /* * 字符串相关处理 */ class StringUtils { /** ...

    alaege 评论0 收藏0

发表评论

0条评论

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