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 ...
随机推荐
- java多线程启动的方法runnable和callable
- rabbitmq的简单介绍二
上一篇博客我们没有介绍完rabbitmq,今天我们接着上一篇的博客继续介绍rabbitmq 这边的博客的内容如下 1.组播,对指定的队列设置关键词,通过关键词来控制消息的分发 2.更加细致的组播 先来 ...
- 通过Jenkins自动构建dubbo服务时的问题汇总
最近接触新的dubbo项目,项目初始时,测试环境的提供者服务发布较频繁,奈何公司又没有自动发布工具,遂自己在测试环境中搭建了Jenkins用于dubbo服务的发布.由于第一次使用,过程中也遇到了一些问 ...
- socket的protocal参数
Documentation for socket() on Linux is split between various manpages including ip(7) that specifies ...
- c11时间库一个小例子
#pragma once #include <chrono> #include <string> #include <iostream> #include < ...
- mybatis小工具
1.其实也不算是针对mybatis的其他都可以用 lombok 2.mybatis的小插件,可以快速定位到mapper.xml和接口之间 mybatisx
- fabric实现文本聚焦、可编辑
var canvas = new fabric.Canvas('c'); var tex = new fabric.IText('click',{left:100,top:400});canvas.a ...
- java并发编程实战:第八章----线程池的使用
一.在任务和执行策略之间隐性耦合 Executor框架将任务的提交和它的执行策略解耦开来.虽然Executor框架为制定和修改执行策略提供了相当大的灵活性,但并非所有的任务都能适用所有的执行策略. 依 ...
- Java程序中做字符串拼接时可以使用的MessageFormat.format
Java里从来少不了字符串拼接的活,Java程序员也肯定用到过StringBuffer,StringBuilder,以及被编译器优化掉的+=.但这些都和下文要谈的无关. 比如有这样的字符串: 张三将去 ...
- Windbg and resources leaks in .NET applications 资源汇总
Windows Forms Leaks 1.http://blogs.msdn.com/b/tess/archive/2008/02/04/net-debugging-demos-informatio ...