/*
*功能: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 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/zc290987034/p/7704753.html