php实现图片base64编码解码
1、图片的base64编码
/*首先要确定图片的类型,需要安装一个php拓展php_fileinfo
如已安装可以在extension_dir目录下找到php_fileinfo.dll(windows),fileinfo.so(linux)
打开php.ini,把extension=php_fileinfo.dll前的";"去掉,然后重启apache。
*/
$file = 'tupian.png';
$fi = new finfo(FILEINFO_MIME_TYPE);
$mime_type = $fi->file($file); //image/jpeg
//然后读取内容进行编码,拼接(建议用file_get_contents,因为是二进制,如果用fopen、fread就得模式要加b)
$base = 'data:'.$mime_type.';base64,'.base64_encode(bafile_get_contents($file)); //获得编码结果
2、base64图片解码
$base = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFEAAABRCAYAAACqj0o2AAAEdUlEQVR4Xu2cgbEMQRCG+0WACBABIkAEiAARIAJEgAgQASJABIgAESAC6qvaqTrr1k7P9j8zdzdTdeU9b7d35tvunp6enjuz0TYTONssYQiwATFACQbEATGAQICInjTxvJndMrOr04fh8TPt886//PzOzH4GjD9ERA8Q75rZPTO74RwRMF+Z2evWQFtCBN4TM7vkhDe//NskB5hNWguIQHuzY6pRA0cz7++YfpTcVTm1IWKyAMT/KRp+EpBvFcKXZNaEiN97WWlwgMRfVmm1IN6eNLDKoKaHVANZAyJhynuhCS+9GEz7Zg0fqYaI7/sUMAOXajAgL6tDIDVEQpjHpQSC7ns6hUBB4v4Vo4SIFn5tYMb7YKGNxJOSpoT43MweSHrtF0ogTnQgaUqIPzrRQsDhGy9ICJrJ8onMyEwoPbU7qiBcpYk9mXJ6kTKTVkH8YGbXe1LDaWJhgglvKog9+cNdaJLxSoSa2e/w1x0jUDJehVBSXcSHPTaWgbia0DYgBuBUQKRbw5wDXs6AGACxxxDnuyqbpDJnsspsRPXUDi7YbpHJXnthsky3ShPTov/c2sgq/p0EhGTDXwmxJ5OmYgLrkDQlxJ6C7oNNyvLWe9gekE0oSa2Vmsgz2CIgLd/KN/6aKi1kWwMMUg2RZ1D1wJZpiyZLxO4OpgZEnlez+iGN75GZkRyWt1oQGUjNbLfcD7bQxPTMGhopC6qXVLqmJqY+sInF2jp6smESIRYMzxeu+YMWENOs/dDM+GyFCTxcBR/JiqRXiKlfhECAxMwvrnV29neyMmgdsag0hFnrVytN3NcvzBxzJCQC7pXZRV8mTUu12qkYfm2M8r+3gsh2KqDS6YCIgaKNfD5GCPPIqAWRdTT5RbTMe0rAM550LVqKqRPqyDVWDRFw+LxIjfNCRTuZdGRHNVQQ8W3PVOl4L8XpemZuJqEXhfcv3hYNEbOluL2GyZayCD+qEQkR7QOg6nhFKbSl+3AzIVoZBbHGci4aIvLIvrNM3NQiIKJ9sirUTaPLu3kzyK0QD1UD53g3gdwCscdt0Tzd239V8SmDUojMwpQTH8okkgu3qGqsFCLp/p7DmFxo8+sIzK95s0ElEI/FDy6Bdpt1CUQKOLce9C7VlBr3uY+yeSEeuxaml+TSRi9EJpOWyYQamsgzXIeHPBB7POCjhJq9Z+2B2ENJiBLaXHb2tqsH4qmYcoJJuJN1eMgDsdc6bKV2EjOuZsZzIbasp1FCWpOdtYLJhXhs6+Q1eK5QJxfiqU0qA2KummVclxV0D038P8kBMUPT1i4JhcimDlugp9ZCIZ7aki8pS9bSL9cnIrTH83pKy6CmJyvx7IHIVgAg59VayoG0kk0FGgCz6h09EBkQIIkZe/nSoGjIFIyy88cYswDSAS/E1GlgkqBlJdPbt454wQIOC+OLK/lkw0sPKoU47ygTD2CTD2H7YGkLgf/3VsV6wFBBu1Q5m2oYk4/f/d3zjL+ujYJY3IFjuHFADHiLA+KAGEAgQMTQxACIfwBygLFS1arSnwAAAABJRU5ErkJggg==';
$arr = preg_split("/(,|;)/",$base);//分隔三部分,data:image/png base64 后面一堆
$base64Data = $arr[2];
$arr2 = explode('/',$arr[0]); //分割出图片格式
$type = $arr2[1];
$fileName = 'tupian.'.$type; //拼接图片名称
file_get_contents($fileName,base64_decode($base64Data));
php实现图片base64编码解码的更多相关文章
- 图片base64编码解码
1.图片base64编码 https://c.runoob.com/front-end/59 2.图片base64解码 https://www.it399.com/image/base64 https ...
- OpenSSL 使用 base64 编码/解码
简述 关于 OpenSSL 的介绍及安装请参见:Windows下编译OpenSSL 下面主要介绍有关 OpenSSL 使用 base64 编码/解码. 简述 编码解码 更多参考 编码/解码 #incl ...
- 利用openssl进行BASE64编码解码、md5/sha1摘要、AES/DES3加密解密
国内私募机构九鼎控股打造APP,来就送 20元现金领取地址:http://jdb.jiudingcapital.com/phone.html内部邀请码:C8E245J (不写邀请码,没有现金送)国内私 ...
- [转]玩转图片Base64编码
转自:[前端攻略]:玩转图片Base64编码 图片处理在前端工作中可谓占据了很重要的一壁江山.而图片的 base64 编码可能相对一些人而言比较陌生,本文不是从纯技术的角度去讨论图片的 base64 ...
- 对JSON传递图片Base64编码的一点总结
项目中跟Java对接的时候需要传输图片,经过Base64编码后传输的. 但是实际调试的时候发现Java那边始终无法正常解析出图片. 冷静想想之后,发现问题在于使用OpenCV读取图片,编码的是Mat: ...
- Javascript中Base64编码解码的使用实例
Javascript为我们提供了一个简单的方法来实现字符串的Base64编码和解码,分别是window.btoa()函数和window.atob()函数. 1 var encodedStr = win ...
- Atitit. 二进制数据ascii表示法,与base64编码解码api 设计标准化总结java php c#.net
Atitit. 二进制数据ascii表示法,与base64编码解码api 设计标准化总结java php c#.net 1. Base64编码, 1 1.1. 子模式 urlsafe Or url ...
- Atitit. 二进制数据ascii表示法,与base64编码解码api 设计标准化总结java php c#.net
Atitit. 二进制数据ascii表示法,与base64编码解码api 设计标准化总结java php c#.net 1. Base64编码,1 1.1. 子模式 urlsafe Or url u ...
- delphi Base64编码/解码及数据压缩/解压知识
一.Base64编码/解码 一般用到的是Delphi自带的单元EncdDecd,当然还有第三方提供的单元或控件,其中我所接触到的认为比较好的有Indy的TIdMimeEncode / TIdMimeD ...
随机推荐
- 企业招聘:UX设计师需要满足他们哪些期望?
以下内容由Mockplus团队翻译整理,仅供学习交流,Mockplus是更快更简单的原型设计工具. 为了确定2017年最有价值的用户体验技能和特质,我特地参考了150多份工作要求.最后,得出了以下 ...
- TabHost tab项单击事件
TabHost 选项发生变化时会触发OnTabChangedListener事件,但是如果当前已经选中第一项,再次单击该项时,OnTabChangedListener不会触发该事件,所以再次单击选中t ...
- 如何用Python实现常见机器学习算法-3
三.BP神经网络 1.神经网络模型 首先介绍三层神经网络,如下图 输入层(input layer)有三个units(为补上的bias,通常设为1) 表示第j层的第i个激励,也称为单元unit 为第j层 ...
- Java线程死锁查看分析方法
如何查看是否有Java线程死锁?下面介绍两种方法. 一.Jconsole Jconsole是JDK自带的图形化界面工具,使用JDK给我们的的工具JConsole,可以通过打开cmd然后输 ...
- Composer安装和使用 - Windows
记录windows下安装和使用Composer的方法 1,使用安装程序 这是将 Composer 安装在你机器上的最简单的方法. 下载并且运行 Composer-Setup.exe,它将安装最新版本的 ...
- UVa 1025 A Spy in the Metro (DP动态规划)
题意:一个间谍要从第一个车站到第n个车站去会见另一个,在是期间有n个车站,有来回的车站,让你在时间T内时到达n,并且等车时间最短, 也就是尽量多坐车,最后输出最少等待时间. 析:这个挺复杂,首先时间是 ...
- linux每天一小步---ls命令详解
1 命令功能: 列出当前目录下或者指定目录下的所有文件和目录,ls是list的缩写. 2 命令语法: ls [选项] [目录名] #注:[]中的内容为非必选项 3 命令选项: -a 列出目录下 ...
- Google’s Project Tango is shutting down because ARCore is already here
https://www.theverge.com/2017/12/15/16782556/project-tango-google-shutting-down-arcore-augmented-rea ...
- Bootstrap轮播
实现原理:隐藏所有要显示的元素,然后指定要显示的为block,宽.高自适应. 结构: 容器:最外层为一个div 使用data-ride="carousel" 来指定为轮播插件.并提 ...
- 简单配置vps,防ddos攻击
防人之心不可无. 网上总有些无聊或者有意的人.不多说了.上干货,配置vps apf防小流量ddos攻击. 对于大流量的ddos攻击, 需要机房的硬件防火墙,vps内部可能也扛不住. 1. 安装 DDo ...