<img src="picture_1.png" id="imgHolder"/>
想要在按钮单击时将indexedDB保存在名为Images的数据库中。
<button id="write" onclick="saveToDB()">Save To DB</button>
另一个按钮将从图像数据库中读取图像,以显示在<div id="resultContent"/>
。
<button id="read" onclick="readFromDB()">Read from DB</button>
答案 0 :(得分:6)
一般的想法是:
查看更多:https://hacks.mozilla.org/2012/02/storing-images-and-files-in-indexeddb/
答案 1 :(得分:2)
是的,这是可能的。在@Yauhen的答案中,link to a Mozilla article可以解释一种可能的实现方式。我将使用canvas
提供一些额外的上下文和替代解决方案。
indexedDB
是一个索引键/值存储,可以存储任何类型的JavaScript对象,可以称为&#34; cloned。&#34;一个方便的启发式实际上是你可以传递给Web Worker的任何东西,你可以传递给IDB。
要存储图像,请将它们转换为字符串。可以克隆字符串,因此它们可以saveToDB()
和readFromDB()
无问题。
将图像转换为字符串表示形式的一种方法是createObjectURL()
,您可以在URL
对象上执行此操作。我首选的方法是toDataURL()
which are found on canvas
无论哪种方式,您都要查看中间步骤1)将图像加载到blob或画布然后2)将数据提取到可存储的字符串中。< / p>