欢迎您来到,李雷博客 | PHP博客        登录  |  注册

PHP如何将图像转换为base64编码格式

更新:2022-12-08 18:55:54
人气:112
来源:互联网转载
A+

base6 4_encode()函数是PHP中的一个内置函数,用于将任何数据转换为base64编码。为了将图像转换成base64编码,首先需要获取文件的内容,这可以通过PHP的file_get_contents()函数来完成。然后将这个原始数据传递给base6 4_encode()函数进行编码。

所需的函数:

base6 4_encode()函数是PHP中的一个内置函数,用于使用MIME base64对数据进行编码。MIME(多用途Internet邮件扩展)base64用于在base64中对字符串进行编码。base64_encoded数据比原始数据多占用33%的空间。

file_get_contents()函数也是PHP中的一个内置函数,用于将文件读入字符串。该函数使用服务器支持的内存映射技术,从而提高了性能,使其成为读取文件内容的首选方法。

PHP代码程序如下:

<?php
$file ="img/001.jpg";
// 获取图像并转换为字符串
$img = file_get_contents($file);
// 取得图片的大小,类型等
$img_info = getimagesize($file);
// 将图像字符串数据编码为base64
$file_content = base6 4_encode($img);
//判读图片类型
 switch ($img_info[2]) {
            case 1:
                $img_type = "gif";
                break;
            case 2:
                $img_type = "jpg";
                break;
            case 3:
                $img_type = "png";
                break;
        }
// 显示输出
 $img_base64 = 'data:image/' . $img_type . ';base64,' . $file_content;//合成图片的base64编码
 return  $img_base64;
 echo   $img_base64;

而解码就略微麻烦一点,究其原因在于把图片编码成base64字符串后,编码内会加入这些字符 data:image/png;base64,本来是用于base64进行识别的。但是如果直接放到php里用base6 4_decode函数解码会导致最终保存的图片文件格式损坏,而解决方法就是先去掉这一串字符:

$base64_string=explode(',',$base64_string);//截取data:image/png;base64, 这个逗号后的字符
$data=base6 4_decode($base64_string[1]);//对截取后的字符使用base6 4_decode进行解码
file_put_contents($url,$data);//写入文件并保存


推荐的文章
# 发表我的评论
  /     /  
# 最近评论
暂时还没有评论,要不要说点什么?
  Ads by Google
  联系博主
Hello,本博客系统采用PHP和MySql开发,程序开发完全是因为个人爱好,是自己纯手写PHP源代码,未采用任何PHP框架!
QQ:858353007   微信号:lileihot123
网站地图
会员服务
关于我们
QQ:858353007
 
广告服务
加我微信
移动端访问
 
 
Copyright © 2014- 2023 www.mdaima.com All Rights Reserved.
李雷博客,专注PHP经验、PHP教程及PHP源代码开源下载分享的PHP博客!   ICP备案号:京ICP备10202169号-4