[原创]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 相关文章推荐
mysql 全文搜索 技巧
Apr 27 PHP
php 动态多文件上传
Jan 18 PHP
php 结果集的分页实现代码
Mar 10 PHP
php 获取客户端的真实ip
Nov 30 PHP
使用JSON实现数据的跨域传输的php代码
Dec 20 PHP
优化PHP程序的方法小结
Feb 23 PHP
深入解读php中关于抽象(abstract)类和抽象方法的问题分析
Jan 03 PHP
php写的AES加密解密类分享
Jun 20 PHP
详解PHP中websocket的使用方法
Sep 15 PHP
PHP与jquery实时显示网站在线人数实例详解
Dec 02 PHP
PHP静态成员变量
Feb 14 PHP
laravel框架路由分组,中间件,命名空间,子域名,路由前缀实例分析
Feb 18 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
三国漫画《火凤燎原》宣布动画化PV放出 预计2020年播出
2020/03/08 国漫
咖啡豆的最常见发酵处理方法,详细了解一下
2021/03/03 冲泡冲煮
PHP树的代码,可以嵌套任意层
2006/10/09 PHP
Windows Apache2.2.11及Php5.2.9-1的安装与配置方法
2009/06/08 PHP
php中的三元运算符使用说明
2011/07/03 PHP
php设计模式之单例模式使用示例
2014/01/20 PHP
浅谈discuz密码加密的方式
2014/05/22 PHP
PHP new static 和 new self详解
2017/02/19 PHP
javascript Xml增删改查(IE下)操作实现代码
2009/01/30 Javascript
javascript中的作用域scope介绍
2010/12/28 Javascript
jquery实现很酷的网页顶部图标下拉菜单效果
2015/08/22 Javascript
jQuery的实例及必知重要的jQuery选择器详解
2016/05/20 Javascript
vue2.0 如何在hash模式下实现微信分享
2019/01/22 Javascript
layui.tree组件的使用以及搜索节点功能的实现
2019/09/26 Javascript
Python生成随机MAC地址
2015/03/10 Python
初步剖析C语言编程中的结构体
2016/01/16 Python
Python的Twisted框架中使用Deferred对象来管理回调函数
2016/05/25 Python
Python设计模式之原型模式实例详解
2019/01/18 Python
python脚本实现mp4中的音频提取并保存在原目录
2020/02/27 Python
python with语句的原理与用法详解
2020/03/30 Python
零基础小白多久能学会python
2020/06/22 Python
浅谈pandas dataframe对除数是零的处理
2020/07/20 Python
python中random.randint和random.randrange的区别详解
2020/09/20 Python
Pycharm学生免费专业版安装教程的方法步骤
2020/09/24 Python
用OpenCV进行年龄和性别检测的实现示例
2021/01/29 Python
分享30个新鲜的CSS3打造的精美绚丽效果(附演示下载)
2012/12/28 HTML / CSS
Philosophy美国官网:美国美容品牌
2016/08/15 全球购物
Otel.com:折扣酒店预订
2017/08/24 全球购物
2014年幼儿园小班工作总结
2014/12/04 职场文书
销售助理岗位职责
2015/02/11 职场文书
商标侵权律师函
2015/05/27 职场文书
个人向公司借款协议书
2016/03/19 职场文书
使用numpy nonzero 找出非0元素
2021/05/14 Python
JavaScript高级程序设计之基本引用类型
2021/11/17 Javascript
css3带你实现3D转换效果
2022/02/24 HTML / CSS
Spring Boot 的创建和运行示例代码详解
2022/07/23 Java/Android