利用PHP将图片转换成base64编码的实现方法


Posted in PHP onSeptember 13, 2016

先来说一下为什么我们要对图片base64编码

base64是当前网络上最为常见的传输8Bit字节代码的编码方式其中之一。base64主要不是加密,它主要的用途是把某些二进制数转成普通字符用于网络传输。由于这些二进制字符在传输协议中属于控制字符,不能直接传送,所以需要转换一下。虽然图片可能直接传输,但是我们也可以将它变成字符串直接放在源码里,而不需要浏览器在读取到源码后再从服务器上下载。

如何使用PHP对图片进行base64解码输出

<?php
$img = 'test.jpg';
$base64_img = base64EncodeImage($img);
 
echo '<img src="' . $base64_img . '" />';
 
function base64EncodeImage ($image_file) {
  $base64_image = '';
  $image_info = getimagesize($image_file);
  $image_data = fread(fopen($image_file, 'r'), filesize($image_file));
  $base64_image = 'data:' . $image_info['mime'] . ';base64,' . chunk_split(base64_encode($image_data));
  return $base64_image;
}
?>

总结

通过上面的方法转换后得到的base64编码字符串,可以存放到数据库中,需要时可以直接从数据库中读取,减少访问图片时的请求数量。这个方法已经包含进MiniFramework的全局函数库中了。以上就是这篇文章的全部内容了,希望对本文的内容对大家的学习或者工作能带来一定的帮助,谢谢大家对三水点靠木的支持。

PHP 相关文章推荐
搜索引擎技术核心揭密
Oct 09 PHP
BBS(php &amp; mysql)完整版(六)
Oct 09 PHP
用PHP读取flv文件的播放时间长度
Sep 03 PHP
php解析json数据实例
Aug 19 PHP
PHP中isset与array_key_exists的区别实例分析
Jun 02 PHP
php实现爬取和分析知乎用户数据
Jan 26 PHP
php实现异步将远程链接上内容(图片或内容)写到本地的方法
Nov 30 PHP
PHP中大括号'{}'用法实例总结
Feb 08 PHP
thinkPHP5.1框架路由::get、post请求简单用法示例
May 06 PHP
php和asp语法上的区别总结
May 12 PHP
Yii框架页面渲染操作实例详解
Jul 19 PHP
thinkphp5 redis缓存新增方法实例讲解
Mar 24 PHP
PHP将URL转换成短网址的算法分享
Sep 13 #PHP
PHP使用FFmpeg获取视频播放总时长与码率等信息
Sep 13 #PHP
php微信公众平台开发之微信群发信息
Sep 13 #PHP
PHP入门教程之使用Mysqli操作数据库的方法(连接,查询,事务回滚等)
Sep 11 #PHP
PHP入门教程之面向对象的特性分析(继承,多态,接口,抽象类,抽象方法等)
Sep 11 #PHP
PHP入门教程之面向对象基本概念实例分析
Sep 11 #PHP
PHP入门教程之PHP操作MySQL的方法分析
Sep 11 #PHP
You might like
在php中取得image按钮传递的name值
2006/10/09 PHP
Yii框架组件和事件行为管理详解
2016/05/20 PHP
Yii2使用自带的UploadedFile实现的文件上传
2016/06/20 PHP
js静态作用域的功能。
2006/12/25 Javascript
jquery 插件开发方法小结
2009/10/23 Javascript
jquery控制listbox中项的移动并排序
2009/11/12 Javascript
网页图片延时加载的js代码
2010/04/22 Javascript
jQuery提交多个表单的小技巧
2014/07/27 Javascript
JS按回车键实现登录的方法
2014/08/25 Javascript
JavaScript中实现map功能代码分享
2015/06/11 Javascript
java必学必会之static关键字
2015/12/03 Javascript
详解在Angular项目中添加插件ng-bootstrap
2017/07/04 Javascript
浅谈事件冒泡、事件委托、jQuery元素节点操作、滚轮事件与函数节流
2017/07/22 jQuery
JavaScript原生实现观察者模式的示例
2017/12/15 Javascript
Angular脚手架开发的实现步骤
2019/04/09 Javascript
javascript for循环性能测试示例
2019/08/07 Javascript
Vue scoped及deep使用方法解析
2020/08/01 Javascript
详解vue路由
2020/08/05 Javascript
JavaScript代码简化技巧实例解析
2020/09/09 Javascript
Vue常用API、高级API的相关总结
2021/02/02 Vue.js
[04:19]DOTA2亚洲邀请赛 现场花絮
2015/03/11 DOTA
[02:09]EHOME夺得首届辉夜杯冠军—现场颁奖仪式
2015/12/28 DOTA
python实现多线程暴力破解登陆路由器功能代码分享
2015/01/04 Python
修复CentOS7升级Python到3.6版本后yum不能正确使用的解决方法
2018/01/26 Python
python将txt文档每行内容循环插入数据库的方法
2018/12/28 Python
通过实例简单了解Python中yield的作用
2019/12/11 Python
Python中使用aiohttp模拟服务器出现错误问题及解决方法
2020/10/31 Python
Perricone MD裴礼康美国官网:抗衰老护肤品
2016/09/26 全球购物
ONLY瑞典官网:世界知名服装品牌
2018/06/19 全球购物
纽约香氛品牌:NEST Fragrance
2018/10/15 全球购物
英超联赛的首选足球:Mitre足球
2019/05/06 全球购物
领导干部廉政自律承诺书
2014/05/26 职场文书
文化大革命观后感
2015/06/17 职场文书
获奖感言范文
2015/07/31 职场文书
五年级语文教学反思
2016/03/03 职场文书
golang操作redis的客户端包有多个比如redigo、go-redis
2022/04/14 Golang