计算机系统应用教程网站

网站首页 > 技术文章 正文

PHP实现base64与图片相互转化

btikc 2024-10-16 08:17:41 技术文章 5 ℃ 0 评论

每次都在网上转化感觉有点烦,就萌生了自己动手玩一个的念头,先放结果图

放错了,嗯是下面这张

base64与图片相互转化要用到base64_decodebase64_encode函数

首先我们观察网页图片的base64位编码

$img = 'data:image/png;base64,......';

$img0 = ' data:image/jpeg;base64,....';

$img1 = 'data:image/jpg;base64,.....';

相信大家都发现了这个简单的规律,我们要获取原图片的mime类型,只需要用到substr和strpos2个字符串处理函数就OK.

//查找字符'/'第一次出现位置

$start = strpos($img,'/');

//查找字符';'第一次出现位置

$end = strpos($img,';');

//截取字符串的长度

$length = $end - $start -1;

//获取mime类型

$mime = substr($img,$start + 1,$length);

万一有个混蛋不传base64头,那就不行了啊.别急,下面我们慢慢解决

考虑到如下的问题,决定封装

  1. 传入的base64编码是否有头

  2. base64转图片后输出的图片格式

  3. base64编码转图片后,图片的保存;图片转base64编码后,base64编码的保存(不想吐槽,有些base64编码真的很长很长).这里要涉及到文件的建立mkdir函数(linux下还要涉及文件的权限问题),以及file_get_contentsfile_put_contents函数

首先定义根目录以及图片和txt保存的路径

目录结构(linux下要给予base64和image读写权限)

先写个接口吧,把要用到的方法理清楚

接口代码

思路理清,正式开始.实现接口

调用先把base64编码转化成图片再把图片转化成base64

结果如下

打开浏览器输出的结果,查看

顺便吐槽下,淘宝的评价的星base64编码真的长.....一个17K的图片转化base64位编码23K......

嗯,好像写的复杂了

终于知道一位前辈为什么说你最好每周写一篇博客了.写博客真的有助于提高自身啊.嗯,这是头条..还是别说了.第一次玩头条,以后就一周玩一次吧.头条分类都没有这代码这块,我就选个娱乐吧,写个文章就是自我娱乐的过程.

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表