zoukankan      html  css  js  c++  java
  • 微信公众号生成海报 将想要的东西拼凑成一张图片

    /*
    *功能:php多种方式完美实现下载远程图片保存到本地
    *参数:文件url,保存文件名称,使用的下载方式
    *当保存文件名称为空时则使用远程文件原来的名称
    */
    function getImage($url,$filename='',$type=0){
        if($url==''){return false;}
        if($filename==''){
            $ext=strrchr($url,'.');
            if($ext!='.gif' && $ext!='.jpg'){return false;}
            $filename=time().$ext;
        }
        //文件保存路径
        if($type){
            $ch=curl_init();
            $timeout=5;
            curl_setopt($ch,CURLOPT_URL,$url);
            curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
            curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,$timeout);
            $img=curl_exec($ch);
            curl_close($ch);
        }else{
            ob_start();
            readfile($url);
            $img=ob_get_contents();
            ob_end_clean();
        }
        $size=strlen($img);
        //文件大小
        $fp2=@fopen($filename,'a');
        fwrite($fp2,$img);
        fclose($fp2);
        return $filename;
    }
    //合成图片方法
    function hc_image($gid){
        //生成二维码
        $imagem = new ThinkImage();//实例化二维码
        $im="http://qr.topscan.com/api.php?text=http://pcg.kuoer.net/index.php?s=/Home/Goods/index/id/".$gid;//二维码图片
        getImage($im,'./Uploads/fenxiang/'.$gid.'ewm.jpg');//下载二维码
        $imagem->open('./Uploads/fenxiang/'.$gid.'ewm.jpg');//打开二维码
        $imagem->thumb  (140,140)->save('./Uploads/fenxiang/'.$gid.'ewm.jpg');//设置二维码大小
        $ewm='./Uploads/fenxiang/'.$gid.'ewm.jpg';//二维码地址
        //找到商品图片
        $goods=M('w_goods')->where(array('id'=>$gid))->field('content,image,money')->find();
        $goods['image']=explode(',',$goods['image']);
        $image_goods=$goods['image'][0];
        $imageg=new ThinkImage();//实例化商品图片
        $imageg->open($image_goods);//打开商品图片
        $imageg->thumb(375,375)->save('./Uploads/fenxiang/'.$gid.'image_goods.jpg');//生成缩略图
        $image_goods='./Uploads/fenxiang/'.$gid.'image_goods.jpg';//商品图片地址
        $imagec=new ThinkImage();//实例化商品图片
        $imagec->open($image_goods);//打开图片
        $imagec->thumb(375, 375,ThinkImage::IMAGE_THUMB_CENTER)->save($image_goods);//居中裁剪
    
        $image = new ThinkImage();//实例化图片
        $image->open('./Public/Home/images/beijin.jpg');//打开背景图
        $image->water($image_goods,ThinkImage::IMAGE_WATER_NORTH,100)->save($image_goods);//合成图片
    
        $loa=array('0',315);//模糊图片地址
        $imagea=new ThinkImage();
        $imagea->open($image_goods);//打开图片
        $imagea->water('./Public/Home/images/zc_5.png',$loa,100)->save($image_goods);
    //文字第一行
        $location=array('10','380');
        $text=mb_substr($goods['content'],0,20,'utf-8');
        $imageb=new ThinkImage();
        $imageb->open($image_goods);
        $imageb->text($text,'./msyh.ttf',12,'#000000',$location,0)->save($image_goods);
    //文字第二行
        $location1=array('10','400');
        $text2=mb_substr($goods['content'],'20',19,'utf-8');
        if($text2) {
            $text2 = $text2 . '...';
            $imageb1 = new ThinkImage();
            $imageb1->open($image_goods);//打开图片
            $imageb1->text($text2, './msyh.ttf', 12, '#000000', $location1, 0)->save($image_goods);
        }
        //添加二维码
        $imagec=new ThinkImage();
        $imagec->open($image_goods);
        $imagec->water($ewm,array('200','430'),100)->save($image_goods);
        //添加
        $money='¥'.$goods['money'];
        $imagez=new ThinkImage();
        $imagez->open($image_goods);
        $imagez->text($money,'./msyh.ttf',20,'#cc0033',array('20','435'))->save($image_goods);
        unlink($ewm);//同时删除二维码图片
        //同时把图片地址添加到数据库;
        M('w_goods')->where(array('id'=>$gid))->setField('fenxiang',$image_goods);
    }

    感谢我磊哥

  • 相关阅读:
    ElasticSearch常用命令
    php 图片打包下载zipfile打包
    windows环境下安装RabbitMQ的步骤
    报Apache/2.4.29 (Ubuntu) Server at admin.milebb.cn Port 80 的解决方法
    phpstorm免费破解永久激活方法
    解决MySQL远程连接服务器上的MySQL报1130的错问题
    最新 laravel maatwebsite/excel ^3.1 导出方法详解
    码云gitee推送到远程仓库时提示错误 remote: Incorrect username or password ( access token )
    Laravel 5.8 下载安装 超实用
    利用ShowDoc自动生成api接口文档
  • 原文地址:https://www.cnblogs.com/zc290987034/p/7704753.html
Copyright © 2011-2022 走看看