渐渐地,那原本被夜幕笼罩的天空出现了微明。一颗颗启明星逐渐变得苍白无力,在浅浅的日光的照射下,胆怯的它们终于退却了。随着启明星的消失,害羞的太阳射出了几道耀眼的金光。
这几天一直在写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格式图片转为本地图片并保存的方法到此结束。不要嘲笑别人的疤,那只是你没有经历过的伤。小编再次感谢大家对我们的支持!