这几天一直在用php写应用服务器端的东西,其中的就有一个需要将图片转换成base64的格式来发送到客户端,用来隐藏图片的链接地址。那么下面就来说一说php脚本中,将图片转换成base64格式以及base64格式的图片转成本地图片的方法。

php 将图片转换base64格式的方法

php示例代码;

//图片的存储路径
$image_file = '2.png';
$image_info = getimagesize($image_file);
$image_data = fread(fopen($image_file, "r"), filesize($image_file));
$base64_image = "data:" . $image_info["mime"] . ";base64," . chunk_split(base64_encode($image_data));
//输出图片 base64 数据流
echo $base64_image;
//输出图像
echo '<img src="'.$base64_image.'" />';

注意:上面的代码只对本地服务器上的图片有效果,如果是远程的图片需要先下载的到本地。这里不再多说!

php 将base64格式的图片存储到本地的方法

php示例代码:

//base64 格式的图片数据流
$base64 = 'data:png:base64,sdfsfsdfsdfdsfsdf';
$arr = preg_split("/(,|;)/",$base64);
$base64Data = $arr[2];
//分割出图片格式
$arr2 = explode('/',$arr[0]);
$type = $arr2[1];
//拼接图片名称 $type 为图片的后缀名
$fileName = '3.'.$type;
//将图片保存到本地
@file_put_contents($fileName,base64_decode($base64Data));