PHP如何将图像转换为base64编码格式
更新:2022-12-08 18:55:54
人气:528
来源:互联网转载
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);//写入文件并保存
推荐的文章
随手记
- ● 统信UOS开机指定网址全屏启动自带浏览器以及屏蔽ALT+F4关闭
- ● xshellSSH连接Linux服务器防止超时退出
- ● php8开启OpenSSL扩展库报错disabledinstallext
- ● 统信系统linux安装php时的报错libxml-2.0>=2.7.6
- ● tidb关闭sql_mode=ONLY_FULL_GROUP_BY模式
- ● windows10如何开机自动运行bat文件
- ● Win10Mysql8初始密码丢失,初始化又不显示密码
- ● UOS系统关闭防火墙或者放行tcp80端口
- ● 统信系统UOS纯命令行与图形模式界面桌面切换方法
- ● javascript(js)的小数点乘法除法问题详解
PHP经验分享
- ● apache下php生成验证码图片不能显示
- ● PHP使用AES加密解密示例(无偏移)
- ● Pluginmysql_native_passwordreported:''mysql_native_password'isdeprecate问题
- ● PHP实现计算CRC-16/MODBUS校验位
- ● MySQLSUM在没有符合查询条件时返回结果为空的处理办法
- ● 如何开启PHP8的JIT提升运行速度
- ● 钉钉API接口-用PHP+Curl实现获取用户信息
- ● 钉钉API接口-用PHP+Curl实现获取应用Access_Token
- ● MySQLInnodb并发涉及参数说明
- ● mysql参数调优之innodb_thread_concurrency、innodb_concurrency_tickets合理的使用cpu性能