php合成图片 文字

Posted 没有昵称不想想

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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()

以上是关于php合成图片 文字的主要内容,如果未能解决你的问题,请参考以下文章

php图文合成文字居中(png图片合成)

iOS 图片水印图片合成文字或图片实现

python PIL 合成图片,图片加文字

golang 使用去合成图片,文字

java合成图片并添加文字

二维码生成. 文字生成图片. 多张图片合并方法及临时合成图片并下载