zoukankan      html  css  js  c++  java
  • php合成图片 文字

    代码:

    public function mergePic(){
            $ground = '/Public/merge/beijing.png';
            $img = [
                'url'=>'/Public/merge/qrcode.png',
                'x'=>100,
                'y'=>100
            ];
            $qr = [
                'url'=>'/Public/merge/qr.jpg',
                'x'=>150,
                'y'=>1400
            ];
            $text = [
                'size'=>20,
                'text'=>'123456'
            ];
            $this->merge($ground,$img,$qr,$text);
        }
    
        /**
         * @param $ground string 背景
         * @param $img array 图片
         * @param $qr array 二维码
         * @param $text array 文字
         */
        public function merge($ground,$img=[],$qr=[],$text=[]){
            $types = [
                "image/jpg" => 'imagecreatefromjpeg',
                "image/jpeg" => 'imagecreatefromjpeg',
                "image/png" => 'imagecreatefrompng',
                "image/pjpeg"  => 'imagecreatefromjpeg',
                "image/gif"  => 'imagecreatefromgif',
                "image/bmp"  => 'imagecreatefromwbmp',
                "image/x-png"  => 'imagecreatefromjpeg'
            ];
            $groundMime = getimagesize(getcwd().$ground);
            $grounds = $types[$groundMime['mime']](getcwd().$ground);//获取图片资源
    //        $fileName = "/Public/merge/".time().".png";//保存图片目录
            $fileName = "/Public/merge/123.png";//保存图片目录
            if($img){
                $imgMime = getimagesize(getcwd().$img['url']);
                $imgs = $types[$imgMime['mime']](getcwd().$img['url']);//获取图片资源
                $imgsW = imagesx($imgs);//图片宽
                $imgsH = imagesy($imgs);//图片高
                imagecopy($grounds, $imgs, $img['x'], $img['y'], 0, 0, $imgsW, $imgsH);//核心函数:复制图片资源到另一图片资源中
            }
    
            if($qr){
                $qrMime = getimagesize(getcwd().$qr['url']);
                $qrs = $types[$qrMime['mime']](getcwd().$qr['url']);//获取图片资源
                $qrsW = imagesx($qrs);//图片宽
                $qrsH = imagesy($qrs);//图片高
                imagecopy($grounds, $qrs, $qr['x'], $qr['y'], 0, 0, $qrsW, $qrsH);//核心函数:复制图片资源到另一图片资源中
            }
    
            if($text){
                $size = $text['size'];//字体大小
                $font = "./Public/merge/yuanti.ttf";//字体
                $text = $text['text'];//显示的文字
                $grey = imagecolorallocate($grounds,0,0,0);//设置字体颜色
                imagettftext($grounds,$size,0,100,100,$grey,$font,$text);//将ttf文字写到图片中
            }
    
            imagepng($grounds,getcwd().$fileName); //保存
            imagedestroy($grounds);
            imagedestroy($imgs);
            imagedestroy($qrs);//销毁图片资源
        }

     参考:

    PHP 使用GD库合成带二维码的海报步骤以及源码实现

    将图片绘制到画布上:imagecopy()

  • 相关阅读:
    免费的mail server
    opensuse 11.2/11.3安装vmware server 1.0.10笔记
    cisco IOS 免费下载的地方
    自动打开最快镜像站
    [ZT]MSSQL清空或者压缩日志的方法
    Cisco路由器的安全配置方案[zt]
    CISCO2821系列路由器恢复密码
    RTorrent User Guide
    Asp.Net发送邮件详解
    C#在线生成网页缩略图
  • 原文地址:https://www.cnblogs.com/mthp/p/10731790.html
Copyright © 2011-2022 走看看