2

我整个下午都在谷歌搜索这个问题,似乎在任何地方都找不到任何搜索,其中单词 Dolphin 和 Base64 Image 或 Data URL 一起出现。但是当我找到关于嵌入 base64 图像的文章时,他们几乎都说它适用于几乎所有浏览器,但 IE 除外。当然,我也不能只查看该页面源或设备上的任何错误控制台(Samsung Galaxy Tab Gingerbread)来查看页面正在解释什么。我得到的只是?图像应该在哪里。适用于 Chrome 和 Opera,但 Dolphin 或股票浏览器都不起作用。

基本上,我有一个第三方签名板控件,其签名图像作为 base64 编码字符串返回给我。然后,我将使用 base64 编码的字符串,将其转换为 DataURL 并将其作为 src 分配给我的 img 控件。在 Chrome 和 Opera 上就像一个魅力,但在我需要它工作的任何一个移动浏览器上都没有。

 var canvas = signaturestr.toDataURL("image/png") //Have also tried jpg and bmp
 $("#image").attr("src", canvas)

这给我?图像应该在哪里。因此,要么我需要一种获取数据 url 并使其被这些浏览器接受的方法,要么我需要能够使用原始 base64 代码来生成图像。同样重要的是要注意,这是一个离线应用程序,我需要所有解决方案都在 javascript 或 jquery 中。

编辑:发现来自其他网站的 base64 图像(包括来自 stackoverflow 论坛的头像)确实出现在这些浏览器上。尝试减小图像的大小,但仍然没有运气。仍然得到替代文本和?。大小绝对不是问题。将我的图像缩小到比有效头像更小的尺寸。真的不知道为什么这个图像在这些浏览器上不起作用。似乎与有效的图像完全相同。

4

2 回答 2

5

我有一个类似的问题,发现这个:

当您尝试加载JPEG文件时,这dataURL是错误的......它以data:base64而不是data:image/jpeg;base64. 我解决了这个问题:

var image = new Image();
image.onload = doSomethingElse();
image.src = myDataURL.replace('data:base64', 'data:image/jpeg;base64');

PNG文件似乎工作正常。

我使用 Android 4(冰淇淋三明治)进行了测试,效果很好——甚至可以直接从设备加载大照片。

于 2012-04-12T12:32:51.097 回答
1

能够简单地在禁用控件的新实例上重新显示捕获的签名,而不是转换为图像并以这种方式显示。工作原理相同。

于 2011-09-28T13:46:39.300 回答