php将Base64格式图片转为本地图片并保存的方法

渐渐地,那原本被夜幕笼罩的天空出现了微明。一颗颗启明星逐渐变得苍白无力,在浅浅的日光的照射下,胆怯的它们终于退却了。随着启明星的消失,害羞的太阳射出了几道耀眼的金光。

这几天一直在写php脚本中关于图片处理的东西,随手记录一下利用php脚本将base64格式的图片转成实体图片并保存到本地的方法,方法非常的简单,自定义了一个函数,直接调用即可。

php将base64格式的图片转成本地图片并保存的方法

自定义函数

/**
 * # php base64格式的图片转成普通图片并保存到本地
 * @param string $base64img base64格式的图片
 * @param string $path 图片保存的路径
 * @param string $imgname 指定保存图片的名称,如不指定则以时间戳代替
 * 
 * @return string/bool 成功则返回图片的路径失败则返回FALSE
 * 
 * @author Mochu
 * @link http://feiniaomy.com
 */
function base64image_save($base64img,$path,$imgname = null)
{
    //匹配出图片的格式
    if (preg_match('/^(data:\s*image\/(\w+);base64,)/', $base64img, $result)){
        $type = $result[2];
        //指定文件存放的目录
        $new_file = $path."/";
        //检查是否有该文件夹,如果没有就创建,并给予最高权限
        if(!file_exists($new_file)){
            mkdir($new_file, 0700);
        }
        //组合图片地址(图片存放地址+图片名+图片后缀)
        $new_file = $imgname == null ? $new_file.time().".{$type}" : $new_file.$imgname.".{$type}";
        //保存图片
        if (file_put_contents($new_file, base64_decode(str_replace($result[1], '', $base64img)))){
            //返回图片地址路径
            return '/'.$new_file;
        }
    
    }
    return false;
}

函数的调用

注:下面的$base变量为一个base64格式图片的字符串,各位测试的话请自行修改!

$base = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEU.......';
base64image_save($base,'img','logo')
// 如果返回 false 则表示 base64 格式不合法,如果保存成功则返回图片的路径。

本文php将Base64格式图片转为本地图片并保存的方法到此结束。不要嘲笑别人的疤,那只是你没有经历过的伤。小编再次感谢大家对我们的支持!

您可能有感兴趣的文章
php get_magic_quotes_gpc()函数介绍与用法

php取消运行时间限制的方法

php中ini_set函数介绍

php获取文件夹下所有文件/文件夹

php如何实现文件下载的方法