如何嵌入带有数据uri的大图像
How to embed a large image with data uri
我目前有一个很大的base64图像uri(通过外部JS脚本接收),并希望将其嵌入HTML页面。我在本地成功地做到了这一点,但现在它从另一个地方把它拉了出来,似乎不起作用,它加载了部分图像,然后说"图像损坏或被截断。这个注释中的URI由于长度而被截断。"这种情况只发生在<img>
标记中,也发生在使用<canvas>
时,有什么方法可以从URI加载大图像吗?或者用另一种方式显示base64字符串中的图像?
没有意义的是,如果我将base64字符串指定为javascript变量,它可以正常工作,但当我将其作为变量包含在外部脚本中时,它会出现此错误。把绳子掰开然后再放回一起能解决这个问题吗?
您不应该将数据URL用于大型文件。
您可以尝试使用以下javascript函数将base64 URL转换为blob对象,并将blob对象转换为临时blob URL:
function dataurlToBlobUrl(url){
var parts = url.split(',',2);
var mime = parts[0].substr(5).split(';')[0];
var blob = b64toBlob(parts[1],mime);
return URL.createObjectURL(blob);
}
以及b64toBlob函数:https://stackoverflow.com/a/16245768/5406901
只要确保在不再需要blob URL时使用"URL.revokeObjectURL"即可。
相关文章:
- 如何在Edge中下载图像/png数据URI
- canvas没有从uri中绘制完整的图像
- 如何从 base64 数据 URI 在服务器端保存 PNG 图像
- 如何嵌入带有数据uri的大图像
- 性能方面-画布与基本URI与图像
- 将 png 图像从 JavaScript 传递到 PHP(错误:请求 URI 太大)
- 带有 base64 字符串(数据 URI)的 HTML 图像标记
- 如何从 Web API 发布和获取数据 uri 图像
- 科尔多瓦相机插件在从具有文件 URI 的图库中选择时始终返回相同的图像
- 无法将图像数据 URI 转换为像素数据数组
- 使用数据URI快速更新图像会导致缓存、内存泄漏
- 使用数据URI无法显示多个图像:静默浏览器错误
- 是否可以加载图像,在内存中缩放它并将其分配为背景图像的 uri
- Firefox可以't在画布上绘制带有数据uri的图像:NS_ERROR_NOT_AVAILABLE
- 如何确定图像是URI还是JavaScript中的缩略图
- 如何将html转换为数据图像uri
- 从图像URI创建Javascript文件/Blob对象
- Android:将图像URI从webview网站发送到应用程序
- 图像 URI 到数据 URL 或画布
- 使用SeleniumJS获取JS生成的图像URI