[原创]php实现 data url的图片生成与保存


Posted in PHP onDecember 04, 2016

Data URL是在本地直接绘制图片,不是从服务器加载,所以节省了HTTP连接,起到加速网页的作用。

语法:

data:image/jpg;    声明数据协议及类型名称
base64,               编码形式为base64
/9j/4AAQSkZ……    base64编码结果

Data URL的生成方法(php):

<?php  $img_file = file_get_contents("https://3water.com/img/logo_s2.png");  echo base64_encode($img_file);

注意:本方法适合于小图片,大图片就不要考虑了,另外IE8以下浏览器不支持这种方法。用这种方法会加重客户端的CPU和内存负担,总之有利有弊。

那么我们如何把网站上的Data URL格式的图片转存成实际图片呢?

其实很简单,我们把图片内容就是src部分传到后台,保存即可。

$img_content // 图片内容
if (preg_match('/^(data:\s*image\/(\w+);base64,)/', $img_content, $result)){
 $type = $result[2];
 $new_file = "./test.{$type}";
 if (file_put_contents($new_file, base64_decode(str_replace($result[1], '', $img_content)))){
  echo '新文件保存成功:', $new_file;
 }
}
PHP 相关文章推荐
建立动态的WML站点(三)
Oct 09 PHP
php面向对象全攻略 (二) 实例化对象 使用对象成员
Sep 30 PHP
PHP5 面向对象(学习记录)
Dec 02 PHP
有关phpmailer的详细介绍及使用方法
Jan 28 PHP
PHP和JavaScrip分别获取关联数组的键值示例代码
Sep 16 PHP
ThinkPHP中关联查询实例
Dec 02 PHP
PHP date函数常用时间处理方法
May 11 PHP
PHP文件上传之多文件上传的实现思路
Jan 27 PHP
PHP合并数组函数array_merge用法分析
Feb 17 PHP
使用PHP+MySql+Ajax+jQuery实现省市区三级联动功能示例
Sep 15 PHP
PHP时间日期增减操作示例【date strtotime实现加一天、加一月等操作】
Dec 21 PHP
PHP使用递归按层级查找数据的方法
Nov 10 PHP
php 魔术常量详解及实例代码
Dec 04 #PHP
深入浅出讲解:php的socket通信原理
Dec 03 #PHP
thinkphp实现分页显示功能
Dec 03 #PHP
thinkphp jquery实现图片上传和预览效果
Jul 22 #PHP
详解PHP用substr函数截取字符串中的某部分
Dec 03 #PHP
微信公众平台开发(五) 天气预报功能开发
Dec 03 #PHP
php die()与exit()的区别实例详解
Dec 03 #PHP
You might like
PHP 观察者模式的实现代码
2013/05/10 PHP
Laravel学习教程之IOC容器的介绍与用例
2017/08/15 PHP
基于jquery的仿百度搜索框效果代码
2011/04/11 Javascript
JavaScript操作XML 使用百度RSS作为新闻源示例
2012/02/17 Javascript
js 取时间差去掉周六周日实现代码
2012/12/25 Javascript
页面图片浮动左右滑动效果的简单实现案例
2014/02/10 Javascript
jQuery filter函数使用方法
2014/05/19 Javascript
javascript原型模式用法实例详解
2015/06/04 Javascript
直接拿来用的页面跳转进度条JS实现
2016/01/06 Javascript
js实现精确到秒的日期选择器完整实例
2016/04/30 Javascript
jquery遍历json对象集合详解
2016/05/18 Javascript
全面了解JS中的匿名函数
2016/06/29 Javascript
jQuery EasyUI学习教程之datagrid点击列表头排序
2016/07/09 Javascript
常用JS图片滚动(无缝、平滑、上下左右滚动)代码大全(推荐)
2016/12/20 Javascript
JS完成画圆圈的小球
2017/03/07 Javascript
详解easyui基于 layui.laydate日期扩展组件
2018/07/18 Javascript
快速搭建Node.js(Express)用户注册、登录以及授权的方法
2019/05/09 Javascript
如何基于js判断浏览器版本
2020/02/20 Javascript
解决angular 使用原生拖拽页面卡顿及表单控件输入延迟问题
2020/04/21 Javascript
js 函数性能比较方法
2020/08/24 Javascript
vue3.0 自适应不同分辨率电脑的操作
2021/02/06 Vue.js
Win10下python 2.7.13 安装配置方法图文教程
2018/09/18 Python
python求质数的3种方法
2018/09/28 Python
在python 中实现运行多条shell命令
2019/01/07 Python
numpy数组之存取文件的实现示例
2019/05/24 Python
python 判断字符串中是否含有汉字或非汉字的实例
2019/07/15 Python
将pymysql获取到的数据类型是tuple转化为pandas方式
2020/05/15 Python
python让函数不返回结果的方法
2020/06/22 Python
详解Python中import机制
2020/09/11 Python
python各种excel写入方式的速度对比
2020/11/10 Python
html5的input的required使用中遇到的问题及解决方法
2018/04/24 HTML / CSS
印度民族服装购物网站:BIBA
2019/08/05 全球购物
大学生实习思想汇报
2014/01/12 职场文书
个人三严三实对照检查材料
2014/09/25 职场文书
防汛工作情况汇报
2014/10/28 职场文书
opencv深入浅出了解机器学习和深度学习
2022/03/17 Python