[原创]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来检测proxy
Oct 09 PHP
php更改目录及子目录下所有的文件后缀扩展名的代码
Oct 12 PHP
php模板函数 正则实现代码
Oct 15 PHP
php empty()与isset()区别的详细介绍
Jun 17 PHP
跟我学Laravel之请求(Request)的生命周期
Oct 15 PHP
PHP使用JSON和将json还原成数组
Feb 12 PHP
浅析iis7.5安装配置php环境
May 10 PHP
PHP的Yii框架使用中的一些错误解决方法与建议
Aug 21 PHP
PHP的serialize序列化数据以及JSON格式化数据分析
Oct 10 PHP
基于php判断客户端类型
Oct 14 PHP
PHP编程计算两个时间段是否有交集的实现方法(不算边界重叠)
May 30 PHP
Thinkphp 框架扩展之Widget扩展实现方法分析
Apr 23 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和Shell写Hadoop的MapReduce程序
2014/04/15 PHP
PHP实现批量生成App各种尺寸Logo
2015/03/19 PHP
在 Laravel 中动态隐藏 API 字段的方法
2019/10/25 PHP
PHP日期和时间函数的使用示例详解
2020/08/06 PHP
用JavaScript获取网页中的js、css、Flash等文件
2006/12/20 Javascript
jquery1.4 教程二 ajax方法的改进
2010/02/25 Javascript
js 跳出页面的frameset框架示例介绍
2013/12/23 Javascript
js实现同一个页面多个渐变效果的方法
2015/04/10 Javascript
JavaScript使用键盘输入控制实现数字验证功能
2016/08/19 Javascript
Bootstrap的popover(弹出框)2秒后定时消失的实现代码
2017/02/27 Javascript
JS实现弹出下载对话框及常见文件类型的下载
2017/07/13 Javascript
详解react-native WebView 返回处理(非回调方法可解决)
2018/02/27 Javascript
vue初始化动画加载的实例
2018/09/01 Javascript
总结4个方面优化Vue项目
2019/02/11 Javascript
React Native中ScrollView组件轮播图与ListView渲染列表组件用法实例分析
2020/01/06 Javascript
vue中axios防止多次触发终止多次请求的示例代码(防抖)
2020/02/16 Javascript
vue如何使用外部特殊字体的操作
2020/07/30 Javascript
Python深度优先算法生成迷宫
2018/01/22 Python
python空元组在all中返回结果详解
2020/12/15 Python
利用CSS3实现圆角的outline效果的教程
2015/06/05 HTML / CSS
详解如何通过H5(浏览器/WebView/其他)唤起本地app
2017/12/11 HTML / CSS
HTML5 WebSocket实现点对点聊天的示例代码
2018/01/31 HTML / CSS
帕克纽约:PARKER NY
2018/12/09 全球购物
应届生财务会计求职信
2013/11/05 职场文书
酒店总经理助理职责
2014/02/12 职场文书
美丽乡村建设实施方案
2014/03/23 职场文书
校长创先争优承诺书
2014/08/30 职场文书
小学生迎国庆演讲稿
2014/09/05 职场文书
校园新闻广播稿5篇
2014/10/10 职场文书
离职报告格式
2014/11/04 职场文书
男方婚前保证书
2015/02/28 职场文书
2015年企业工作总结范文
2015/04/28 职场文书
给学校的建议书400字
2015/09/14 职场文书
小组组名及励志口号
2015/12/24 职场文书
教你怎么用Python生成九宫格照片
2021/05/20 Python
Python实现老照片修复之上色小技巧
2021/10/16 Python