[原创]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 相关文章推荐
php时间不正确的解决方法
Apr 09 PHP
php中批量删除Mysql中相同前缀的数据表的代码
Jul 01 PHP
使用PHP遍历文件夹与子目录的函数代码
Sep 26 PHP
QQ互联一键登录审核不通过的解决方案
Sep 10 PHP
如何让CI框架支持service层
Oct 29 PHP
PHP使用json_encode函数时不转义中文的解决方法
Nov 12 PHP
Yii框架在页面输出执行sql语句以方便调试的实现方法
Dec 24 PHP
Apache连接PHP后无法启动问题解决思路
Jun 18 PHP
盘点PHP和ASP.NET的10大对比!
Dec 24 PHP
PHP常用字符串操作函数实例总结(trim、nl2br、addcslashes、uudecode、md5等)
Jan 09 PHP
php实现的XML操作(读取)封装类完整实例
Feb 23 PHP
PHP中类型转换 ,常量,系统常量,魔术常量的详解
Oct 26 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实现从ftp服务器上下载文件树到本地电脑的程序
2009/02/10 PHP
ThinkPHP自定义函数解决模板标签加减运算的方法
2015/07/03 PHP
PHP实现json_decode不转义中文的方法
2017/05/20 PHP
jQuery的deferred对象使用详解
2011/08/20 Javascript
input 和 textarea 输入框最大文字限制的jquery插件
2011/10/27 Javascript
js中如何把字符串转化为对象、数组示例代码
2013/07/17 Javascript
jquery $.each 和for怎么跳出循环终止本次循环
2013/09/27 Javascript
js判读浏览器是否支持html5的canvas的代码
2013/11/18 Javascript
一个简单不报错的summernote 图片上传案例
2016/07/11 Javascript
解析javascript图片懒加载与预加载的分析总结
2016/10/27 Javascript
详解Vue-Cli 异步加载数据的一些注意点
2017/08/12 Javascript
jquery自定义显示消息数量
2017/12/19 jQuery
vue中子组件调用兄弟组件方法
2018/07/06 Javascript
微信小程序实现获取小程序码和二维码java接口开发
2019/03/29 Javascript
JavaScript canvas绘制渐变颜色的矩形
2020/02/18 Javascript
Vue2.4+新增属性.sync、$attrs、$listeners的具体使用
2020/03/08 Javascript
微信小程序开发打开另一个小程序的实现方法
2020/05/17 Javascript
vue 导航守卫和axios拦截器有哪些区别
2020/12/19 Vue.js
[01:34]2014DOTA2展望TI 剑指西雅图VG战队专访
2014/06/30 DOTA
[42:04]DOTA2上海特级锦标赛主赛事日 - 2 胜者组第一轮#3Secret VS OG第一局
2016/03/03 DOTA
Python中列表、字典、元组、集合数据结构整理
2014/11/20 Python
Python中Iterator迭代器的使用杂谈
2016/06/20 Python
python中import reload __import__的区别详解
2017/10/16 Python
Python3使用turtle绘制超立方体图形示例
2018/06/19 Python
Python 面试中 8 个必考问题
2018/11/16 Python
Python小进度条显示代码
2019/03/05 Python
python爬虫 基于requests模块的get请求实现详解
2019/08/20 Python
使用Python实现画一个中国地图
2019/11/23 Python
解决Keras TensorFlow 混编中 trainable=False设置无效问题
2020/06/28 Python
PyQt5的相对布局管理的实现
2020/08/07 Python
丝芙兰波兰:Sephora.pl
2018/03/25 全球购物
BLACKMORES澳洲官网:澳大利亚排名第一的保健品牌
2018/09/27 全球购物
银行毕业实习自我鉴定
2013/09/19 职场文书
运动会5000米加油稿
2015/07/21 职场文书
2016年习主席讲话学习心得体会
2016/01/20 职场文书
详解Anyscript开发指南绕过typescript类型检查
2022/09/23 Javascript