PHP 图片与base64相互转换

  •  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; 
}     
?>

 

  • 将base64字符串转换为图片:

//第一个参数图片保存路径以及图片名称 需注意图片后缀 linux请注意文件权限
//第二个参数为图片的base64字符串  ps:下方会贴出图片base64的格式 以及注意事项

file_put_contents('./test_base2.jpg', base64_decode($base64));

 

  • 详解图片base64字符串:

//读取图片数据
$gambar = fread($fp,filesize($file)); 
//获取图片base64 
$base64 = chunk_split(base64_encode($gambar));


//$gambar->读取的是图片的数据流
//$base64->将图片数据流转换为base64

此时获取的图片base64字符串格式为:ps:每张图片获取的数据都是不一样的,这里只是一个例子

/9j/4AAQSkZJRgABAQEAkACQAAD/4QC....此处省略N多字符串......KKKAP/2Q==

以data开头,是展示图片而增加的图片头信息,所以我们只使用`$base64`的数据

data:image/jpg/png/gif;base64,/9j/4AAQSkZJRgABAQEAkACQAAD/4QC....此处省略N多字符串......KKKAP/2Q==

 

此外,我们也可以将一些字符串或者其他数据也追加到图片里面 并保存为图片

$base64 = chunk_split(base64_encode($gambar) .'#'. base64_encode('举个例子')); 
//将需要追加的数据也转换为base64格式,注意 【#】符号

 

  • 4
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值