一个更好的测试base64 URI支持(我可以在JS中创建一个大的base64编码的图像吗?)
A better test for base64 URI support (can I create a large base64-encoded image in JS?)
我正在使用Modernizr来检测用户正在运行的浏览器中支持的功能,到目前为止一切顺利。但是在测试base64兼容性时,我遇到了一个理论问题。此支持的补丁详细说明在这里,并且工作-除了IE8的奇怪情况-它只允许base64编码的图像最多32KB。
我真的不想在我的JS文件中嵌入一个32KB长的base64字符串,它会增加一个疯狂的膨胀量。那么,我可以使用JS创建一个32KB的有效图像吗?我在考虑在字符串中重复某种模式,直到长度达到32KB,诸如此类的事情。或者取一个现有的小字符串(如Modernizr补丁中的字符串),并在末尾添加垃圾数据,仍然会产生有效的图像。
我对base64编码几乎一无所知,除了如何操作现有的图像。有人有什么想法吗?我想我有答案了。我尝试了各种各样的技术(我可以手动添加的PNG源中的重复文本块等),直到我发现添加换行符似乎可以完成工作:
var b64test = new Image();
b64test.onload = function() {
alert("yay!")
}
b64test.onerror = function() {
alert("boo")
}
/* A 1x1 GIF image */
var base64str = "R0lGODlhAQABAIAAAAAAAP///ywAAAAAAQABAAACAUwAOw=="
while (base64str.length < 33000) {
base64str = "'r'n" + base64str;
}
b64test.src= "data:image/gif;base64," + base64str;
在IE8中失败,在IE9和其他版本中正常。我很想听听其他的选择
相关文章:
- 一个javascript实现base64图像编码并将结果写入文本文件
- 读取一个本地文件,编码为base64,我想给用户一个将结果保存到文件的选项
- 我已经从d3图表中创建了一个base64图像,需要使用客户端javascript或angular将其发布到faceboo
- 将 Base64 字符串从 AS3 返回到 Javascript.这是一个错误或功能(还是我错了?
- 在javascript中将base64图像转换为文件,或者如何使用jquery ajax传递一个大的base64字符串
- 将 Base64 编码的图像加密为另一个有效的 Base64 编码图像
- 使用缓冲区解码base64时出错.第一个参数必须是一个数字
- 缓冲区base64编码一个变量node.js
- 如何向PHP函数发送一个长度超过200000个字符的base64字符串,以便保存图像
- 函数,参数为image, width, height,并返回一个调整大小的base64图像数据
- 如何解码一个文件从base64编码与JavaScript
- 在Rails中通过参数发送base64图像是一个好做法吗?
- 一个画布,我想加载一个Base64字符串,表示png图像,但只是显示一个空白的白色框
- javascript,从Base64字符串创建一个要上传的图像文件
- 我如何使用php回显一个base64字符串作为图像到浏览器
- 发送一个base64文件到Node.js套接字.io服务器
- 如何在Sencha Touch 2中定义一个编码base64图像作为背景
- 一个更好的测试base64 URI支持(我可以在JS中创建一个大的base64编码的图像吗?)
- 如何减少base64图像数据并保存到另一个变量
- 在一个img src标签上显示不同格式的普通图像,以及base64图像