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