PHP 图片与base64相互转换
<?php
//Filetype: JPEG,PNG,GIF
$file = "encode.jpg"; //$file:图片地址
if($fp = fopen($file,"rb", 0))
{
$gambar = fread($fp,filesize($file));
fclose($fp);
//获取图片base64
$base64 = chunk_split(base64_encode($gambar));
// 输出
$encode = '<img src="data:image/jpg/png/gif;base64,' . $base64 .'" >';
echo $encode;
}
?>
//第一个参数图片保存路径以及图片名称 需注意图片后缀 linux请注意文件可写权限
//第二个参数为图片的$base64字符串 ps:下方会贴出图片$base64的格式 以及注意事项
file_put_contents('./test_base2.jpg', base64_decode($base64));
//读取图片数据
$gambar = fread($fp,filesize($file));
//获取图片base64
$base64 = chunk_split(base64_encode($gambar));
//$gambar->读取的是图片的数据流
//$base64->将图片数据流转换为base64
此时获取的图片base64字符串格式为:ps:每张图片获取的数据都是不一样的,这里只是一个例子
/9j/4AAQSkZJRgABAQEAkACQAAD/4QC....此处省略N多字符串......KKKAP/2Q==
生成图片增加的图片头信息,所以我们只使用$base64
的数据进行拼接
data:image/jpg/png/gif;base64,/9j/4AAQSkZJRgABAQEAkACQAAD/4QC....此处省略N多字符串......KKKAP/2Q==
此外,我们也可以将一些字符串或者其他数据也追加到图片里面 并保存为图片
$base64 = chunk_split(base64_encode($gambar) .'#'. base64_encode('举个例子'));
//将需要追加的数据也转换为base64格式,注意 【#】符号
本作品采用 知识共享署名-相同方式共享 4.0 国际许可协议 进行许可。