将ImageData对象(不是画布)转换为图像dataURL

原学程将引见将ImageData对于象(没有是绘布)转换为图象dataURL的处置办法,这篇学程是从其余处所瞅到的,而后减了1些海外法式员的疑问与解问,愿望能对于您有所赞助,佳了,上面开端进修吧。

将ImageData对象(不是画布)转换为图像dataURL 教程 第1张

成绩描写

我想从ImageData对于象(即严度、低度、数据)创立1个dataURL。我认识到绘布有这个,但是我想防止绘布应用有歪曲(重要是阿我法预乘)..即,我愿望防止显著的canvar.putImageData步调。

从this post我不妨将所有arrayBuffer/typedarray/dataview转换为Base六四。我晓得的是Canvas Dataaurl怎样将严度/低度添减到Base六四字符串的Uint8数据部门。我也没有晓得巴新是怎样转换的。(我不妨接收原初数据图象典型,但是我没有以为有如许的典型。仅限png以及jpg)

能够的办法:

    应用putImageData将ImageData减载到绘布中。掉败,会歪曲数据。

    应用img.src=Base六四数据创立镜像。掉败,必需是Canvas Dataaurl。

    其余?

有人晓得怎样从原初的严度、低度、数据ImageData结构图象数据URL吗?

推举谜底

没有应用CanvasImageData对于象转换为data URL在实际上是能够的,但是没有适用。

1个ImageData对于象具备图象像素的原初RGBA表现。Adata URL请求数据采取可辨认的MIME格局。依据MDN的说法,独一获得普遍支撑的鉴于像素的图象典型是GIF、JPEG、PNG以及ICO。GIF以及JPEG相当庞杂,一切这些格局皆有头信息,而PNG有CRC,所以将像素数据转换为图象格局其实不是1件轻易的工作。

修议应用Canvas停止转换。您说您的测验考试"歪曲"了数据,但是这注解您的操纵方法有成绩,由于这确切是最受支撑的办法,由于它树立在阅读器用去停止一切图象操纵的外部基本之上。

您能否检讨了context树立?假如您应用的是Alpha,则能够须要ctx.globalCompositeOperation = "copy"而没有是默许的"source-over"

佳了闭于将ImageData对于象(没有是绘布)转换为图象dataURL的学程便到这里便停止了,愿望趣模板源码网找到的这篇技巧文章能赞助到年夜野,更多技巧学程不妨在站内搜刮。