[原创]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原理之异常机制
Aug 21 PHP
php 错误处理经验分享
Oct 11 PHP
PHP中空字符串介绍0、null、empty和false之间的关系
Sep 25 PHP
10 个经典PHP函数
Oct 17 PHP
php实现数组筛选奇数和偶数示例
Apr 11 PHP
phpExcel中文帮助手册之常用功能指南
Aug 18 PHP
php实现编辑和保存文件的方法
Jul 20 PHP
PHP中文竖排转换实现方法
Oct 23 PHP
详解WordPress中简码格式标签编写的基本方法
Dec 22 PHP
Yii框架实现图片上传的方法详解
May 20 PHP
php利用fsockopen GET/POST提交表单及上传文件
May 22 PHP
PHP绕过open_basedir限制操作文件的方法
Jun 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
GBK的页面输出JSON格式的php函数
2010/02/16 PHP
PHP实现今天是星期几的几种写法
2013/09/26 PHP
php+xml实现在线英文词典查询的方法
2015/01/23 PHP
利用php获得flv视频长度的实例代码
2017/10/26 PHP
document.getElementById介绍
2011/09/13 Javascript
JavaSciprt中处理字符串之sup()方法的使用教程
2015/06/08 Javascript
解析JavaScript面向对象概念中的Object类型与作用域
2016/05/10 Javascript
基于css3新属性transform及原生js实现鼠标拖动3d立方体旋转
2016/06/12 Javascript
jQuery插件FusionWidgets实现的AngularGauge图效果示例【附demo源码】
2017/03/23 jQuery
VSCode配置react开发环境的步骤
2017/12/27 Javascript
vue-cli axios请求方式及跨域处理问题
2018/03/28 Javascript
js嵌套的数组扁平化:将多维数组变成一维数组以及push()与concat()区别的讲解
2019/01/19 Javascript
jQuery内容过滤选择器与子元素过滤选择器用法实例分析
2019/02/20 jQuery
vue-cli3添加模式配置多环境变量的方法
2019/06/05 Javascript
基于JS实现简单滑块拼图游戏
2019/10/12 Javascript
javascript中正则表达式语法详解
2020/08/07 Javascript
vue实现简单加法计算器
2020/10/22 Javascript
[41:08]2014 DOTA2国际邀请赛中国区预选赛 HGT VS NE
2014/05/22 DOTA
[02:32]DOTA2完美大师赛场馆静安体育中心观赛全攻略
2017/11/08 DOTA
[01:19]DOTA2城市挑战赛报名开始 开启你的城市传奇
2018/03/23 DOTA
[01:00:14]DOTA2-DPC中国联赛 正赛 Ehome vs Elephant BO3 第二场 2月28日
2021/03/11 DOTA
解决python2.7用pip安装包时出现错误的问题
2017/01/23 Python
python生成圆形图片的方法
2020/03/25 Python
基于Django用户认证系统详解
2018/02/21 Python
Django框架实现分页显示内容的方法详解
2019/05/10 Python
Pytorch的mean和std调查实例
2020/01/02 Python
Django 返回json数据的实现示例
2020/03/05 Python
纯CSS3实现自定义Tooltip边框涂鸦风格的教程
2014/11/05 HTML / CSS
Max&Co官网:意大利年轻女性时尚品牌
2017/05/16 全球购物
医学专业毕业生个人求职信
2013/12/25 职场文书
初中英语演讲稿
2014/04/29 职场文书
设计师求职信
2014/07/01 职场文书
上班离岗检讨书
2014/09/10 职场文书
工程款催款函
2015/06/24 职场文书
如何自己动手写SQL执行引擎
2021/06/02 MySQL
MySQL系列之六 用户与授权
2021/07/02 MySQL