这篇文章介绍一款在线的图片 base64 编码利器 — Duri.me。data URI 图片是 base64编码的图片文件,可以嵌入到 HTML 或者 CSS 文件中,能够减少 HTTP 请求,提高网页加载速速。

您可能还喜欢推荐8款很棒的测试网站速度的免费工具

10套精美的免费网站后台管理系统模板

开发者必备的8个最佳云端集成开发环境

十款精心挑选的在线CSS3代码生成工具

推荐8款优秀的免费 Web 安全测试工具

Duri.me 是一个简单但非常有用的 Web 应用程序,可以快速的在线生成图片文件的 data URI。Duri.me使用非常简单,把图片拖放到框内,然后点击 Generate Base-64 Code 按钮就会自动生成编码,Duri.me帮你生成了图片、CSS和Base64字符串三种形式的代码,可以根据自己的需要拷贝生成的内容。

Data URI 简介

dataURIs 是由 RFC 2397 定义,允许将一个小文件进行编码后嵌入到另外一个文档里。data URIs 的语法结构如下:data:[][;base64],

mediatype是一种MIME类型字符串, 例如 "image/jpeg" 代表 JPEG 图像文件。如果省略这个参数,则默认值为text/plain;charset=US-ASCII。如果数据是文本类型, 你可以直接将文本嵌入在 data: 后面 (根据文本类型以及编码,使用合适的 HTML 实体编码或者百分号编码)。如果是二进制数据,你可以将数据进行 base64 编码之后再进行嵌入。

下面是一些示例:data:,Hello%2C%20World!

简单的text/plain类型数据data:text/plain;base64,SGVsbG8sIFdvcmxkIQ%3D%3D

base64编码过的数据data:text/html,%3Ch1%3EHello%2C%20World!%3C%2Fh1%3E

一个HTML文档源代码

Hello, World

Firefox中生成 data URI 的方法

在 Firefox 浏览器中,将一个 nsIFile 转换为 data URI 的方法:function generateDataURI(file) { var contentType = Components.classes["@mozilla.org/mime;1"] .getService(Components.interfaces.nsIMIMEService) .getTypeFromFile(file); var inputStream = Components.classes["@mozilla.org/network/file-input-stream;1"] .createInstance(Components.interfaces.nsIFileInputStream); inputStream.init(file, 0x01, 0600, 0); var stream = Components.classes["@mozilla.org/binaryinputstream;1"] .createInstance(Components.interfaces.nsIBinaryInputStream); stream.setInputStream(inputStream); var encoded = btoa(stream.readBytes(stream.available())); return "data:" + contentType + ";base64," + encoded;}

常见问题和兼容性

下文介绍一些在使用 data URIs 时遇到的常见问题:

语法:data URIs 的格式很简单,但很容易会忘记了在 "data:" 协议名后面必须有一个逗号(MIME类型和"base64"都是可省略的),或者在对数据进行 base64 编码时发生错误。

HTML代码格式化:一个data URI 是作为了一个文件内的文件,所以在嵌入其他文档的内部时,这个data URI 所在的行就会非常的长,所以应当用空白符(换行符、制表符、 空格)来对它进行格式化,但如果数据是经过base64编码过的,就可能会遇到一些问题。

长度限制:虽然 Mozilla 支持无限长度的 data URIs,但是标准中并没有规定浏览器必须支持无限长度的 data URIs。比如 Opera 11 限制 data URIs 的长度最多为 65000 个字符。

不支持查询字符串:一个 data URI 的数据字段是没有结束标记的,所以尝试在一个data URI后面添加查询字符串会导致,查询字符串也一并被当作数据字段。例如:data:text/html,lots of text...

bottom?arg=val

这个data URI代表的HTML源文件内容为:lots of text...

bottom?arg=val

注意:从Firefox 6开始,data URI 中的锚点标记(#)会像在其他普通网页 URI 上一样可被识别,因此,如果想要表示文件内容中的 "#",必须将它转义为'%23'。

浏览器兼容性:已经支持 data: 协议的浏览器有 Opera 7.20 及其以上版本,Safari 和 Konqueror。Internet Explorer 7 及以下版本不支持,Internet Explorer 8 及以上版本只支持在 CSS 文件中使用 data URIs 格式的图片。

您可能还喜欢10套精美的免费网站后台管理系统模板

精心挑选的优秀 jQuery Ajax 分页插件

十款精心挑选的在线CSS3代码生成工具

让人爱不释手的13套精美网页图标素材

Web前沿:那些让人惊叹的CSS3应用

本文链接:图片base64编码利器:一款在线Data URI生成工具

编译来源:梦想天空 ◆ 关注前端开发技术 ◆ 分享网页设计资源

hide

转载请保留本文网址:

http://www.shaoqun.com/a/47501.html

编码 data:text/html;c,[网页设计]图片base64编码利器:在线 Data URI 生成工具 – Duri.me...相关推荐

  1. 手机端网页设计尺寸,手机端网页设计图片尺寸

    电脑网页的设计尺寸 对大于30W台客户端用户进行测试,得到的测试数据如下(数据来源于网络): 安全分辨率为1024 X 768 px 可建议大分辨率为1280 X 800 px 在Window XP常 ...

  2. 图片Base64编码

    图片处理在前端工作中可谓占据了很重要的一壁江山.而图片的 base64 编码可能相对一些人而言比较陌生,本文不是从纯技术的角度去讨论图片的 base64 编码.标题略大,不过只是希望通过一些浅显的论述 ...

  3. 【HTML5】------- 图片Base64编码详解

    引言 图片处理在前端工作中可谓占据了很重要的一壁江山.而图片的 base64 编码可能相对一些人而言比较陌生,本文不是从纯技术的角度去讨论图片的 base64 编码.标题略大,不过只是希望通过一些浅显 ...

  4. 图片Base64编码 图片Base64在线转换

    在线工具https://oktools.net 图片Base64编码https://oktools.net/image2base64 JSON格式化https://oktools.net/json U ...

  5. Java教程:Java使用POI将图片Base64编码写入到Excel表格当中

    今天来说下在Java当中使用poi将将图片Base64编码写入到Excel表格当中,以前我们都是在表格中写内容,但不防会有时让写出图片等功能,比如说做一些评价功能,上传图片那是必然的,接下来我就说下整 ...

  6. 网页设计图片向上浮动_CSS 关于浮动

    CSS CSS 关于浮动 作者: 来源:www.28hudong.com2012-11-19 22:31:15 阅读次 什么是浮动? 浮动是 css 的定位属性.我们可以看一下印刷设计来了解它的起源和 ...

  7. HTML5网页设计图片如何,网页设计中优化图片的6个技巧

    本文转载自[微信公众号:阿门教你PS,ID:meitian_PS]经微信公众号授权转载,如需转载与原文作者联系 平面设计和网页设计是两个截然不同的领域,这两个领域有不同的设计需求.设计实践和设计方法. ...

  8. 在网页中嵌入Base64编码文件

    大家可能注意到了,网页上有些图片的src或css背景图片的url后面跟了一大串字符,比如:data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAAEAAAAk ...

  9. 电影主题HTM5网页设计作业成品——爱影评在线电影(10页面)使用dreamweaver制作采用DIV+CSS进行布局

    HTML实例网页代码, 本实例适合于初学HTML的同学.该实例里面有设置了css的样式设置,有div的样式格局,这个实例比较全面,有助于同学的学习,本文将介绍如何通过从头开始设计个人网站并将其转换为代 ...

最新文章

  1. 代码测试意味着完全消灭了Bug?
  2. App社交分享的后续行为可以这样统计
  3. git/ TortoiseGit 在bitbucket.org 使用证书登陆
  4. 腾讯开源 TurboTransformers:自然语言处理推理加速工具
  5. java 插桩 工具_一个基于Eclipse的通用Java程序插桩工具.pdf
  6. 史上最全的并发编程学习目录
  7. 雅虎辉煌不再,紫色血液永存
  8. html上下表格合并单元格,html表格合并单元格的方法_WEB前端开发
  9. mysql从删库到跑路 Ubuntu篇
  10. Linux下文件的压缩、解压缩、打包以及提取
  11. 织梦5.7登陆注册实现
  12. 使用自开发的代理服务器解决 SAP UI5 FileUploader 上传文件时遇到的跨域访问错误试读版
  13. 解决$ is not defined 的几种方法
  14. Susman Godfrey L.L.P.与Hausfeld LLP宣布3.4亿美元诉讼及和解方案,涉及在2007年8月至2010年5月期间持有基于美元LIBOR工具的个人和机构
  15. Flink SQL 核心解密 —— 提升吞吐的利器 MicroBatch
  16. 个人站——关于我页面设计
  17. android批量转换图片格式,使用Android Studio批量转换图片为Webp格式
  18. R语言的几何平均数,调和平均数,平方平均数
  19. asp.net c#开发的音悦台自动打卡小软件
  20. Linux基础(02)、MTPutty安装和使用

热门文章

  1. MT7601 无线wifi网卡驱动移植
  2. 先电OpenStack搭建
  3. 利用阿里云主机快速搭建基于wordpress的个人博客网站
  4. 【数据结构】什么是拓扑排序—关于图的拓扑排序
  5. 【TSP问题】基于改进遗传算法求解旅行商问题matlab源码
  6. 结对编程——电梯调度系统
  7. plcst语言编程教程_PLC ST语言编程之我的心得-专业自动化论坛-中国工控网论坛...
  8. peda的帮助文档(自己翻译)
  9. windows 无法删除文件,没有操作权限,右键文件属性查看安全-不可用
  10. error C2275 将此类型用作表达式非法