微信公众号生成海报 将想要的东西拼凑成一张图片
/* *功能: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 \Think\Image();//实例化二维码 $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 \Think\Image();//实例化商品图片 $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 \Think\Image();//实例化商品图片 $imagec->open($image_goods);//打开图片 $imagec->thumb(375, 375,\Think\Image::IMAGE_THUMB_CENTER)->save($image_goods);//居中裁剪 $image = new \Think\Image();//实例化图片 $image->open(\'./Public/Home/images/beijin.jpg\');//打开背景图 $image->water($image_goods,\Think\Image::IMAGE_WATER_NORTH,100)->save($image_goods);//合成图片 $loa=array(\'0\',315);//模糊图片地址 $imagea=new \Think\Image(); $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 \Think\Image(); $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 \Think\Image(); $imageb1->open($image_goods);//打开图片 $imageb1->text($text2, \'./msyh.ttf\', 12, \'#000000\', $location1, 0)->save($image_goods); } //添加二维码 $imagec=new \Think\Image(); $imagec->open($image_goods); $imagec->water($ewm,array(\'200\',\'430\'),100)->save($image_goods); //添加 $money=\'¥\'.$goods[\'money\']; $imagez=new \Think\Image(); $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); }
感谢我磊哥
版权声明:本文为zc290987034原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。