2

我是 HTML5 的新手。

使用一个典型的元素和像 jQuery 这样的东西,我通常能够访问它的值

$("#elem").val();

编辑:说我写"abcd"在画布元素中..我希望能够在某个数据库中“存储”“abcd”...

如果它是纯文本,我将使用 jquery 如上所示访问它,但使用绘图我不确定它是如何工作的?

如何使用画布元素实现相同的结果?我可以期待什么格式的结果?我是否必须获取所有 x,y 坐标的数组并对其进行解析?我得到图像吗?

谢谢你的帮助!

4

2 回答 2

5

您可以使用该getImageData()方法。这将返回一个ImageData对象。ImageData包含一个width属性、一个height属性和一个CanvasPixelArray本质上是位图的对象。ImageData 可能对于将数据加载回画布(使用该putImageData()方法)最有用,但如果您愿意,也可以检查像素数组的原始数据。

您可以在此处阅读有关 ImageData 的更多信息。

您可以在此处阅读有关画布像素操作的信息。


看来我可能误解了你的问题。如果通过在数据库中存储“abcd”,您希望存储位图图像,那么您只需提取像素数据,然后将其存储为 BLOB 或类似对象。这就是我假设你的意思。

但是,如果您希望将实际文本“abcd”存储在您的数据库中,您将遇到更困难的时间。您需要将画布视为文字画布。一旦你把东西放在上面,它就会成为图像的一部分。它不像 SVG,可以再次提取特定组件。画布本质上是一个位图图像,因此如果您希望从中提取文本数据而无需访问设计算法,您将不得不使用某种 OCR 算法(这当然是非常不可取的)。

如果您确实希望提取文本数据,我建议您看一下 SVG,它在某些方面更灵活。MDN 有一系列关于该主题的相当全面的文章。

于 2013-01-31T08:02:16.977 回答
1

画布不存储对象,一切都只是光栅化的图像。因此,如果您想将画布数据作为对象访问,则必须使用画布库,即fabric.js

于 2013-01-31T08:08:57.543 回答