gpt4 book ai didi

javascript - JavaScript 中的 BMP 解码并绘制到 Explorer Canvas

转载 作者:行者123 更新时间:2023-12-02 20:32:23 24 4
gpt4 key购买 nike

我需要使用 JavaScript 下载 BMP 并将其渲染到 Internet Explorer 的屏幕上。首先,是的,我知道这很疯狂,我不会解释为什么,让我们暂时接受 img src 由于安全限制而无法工作,但是在帖子中进行正确身份验证的 ajax 请求将拉回图像。为了简单起见,这个示例绕过了所有安全性,只是证明我们可以渲染一些东西。

我能想到的最好的想法是通过 ajax 获取流,解码位图,然后使用 Canvas 渲染它。 Internet Explorer 显然不支持 canvas,但幸运的是 Google 提供了一个名为 excanvas 的 SVG 包装器,我可以使用它。

我的代码(绘图代码似乎可以工作,bmp 解码则不太有效)

http://gist.github.com/614328

future 对除 BMP 之外的其他图像的支持是可能的,并且由于 Canvas 的工作方式,最容易以 RGBA 绘制像素。 Texture2D 本质上是 RGBA 字节数组的包装类,加上绘图代码。 ByteStream 使眼睛更容易处理字节数组,BitmapDecoder 包含将 BGR 格式转换为 RGBAtexture2d 进行绘图的方法。

是否有可能字节在传输过程中被错误翻译,或者我的解码逻辑有问题?

仅供引用,我从维基百科获取了文件规范:

http://en.wikipedia.org/wiki/BMP_file_format#Bitmap_Information_.28DIB_header.29

知道解码逻辑或绘制逻辑中发生了什么导致我的 BMP 绘制不正确吗?

最佳答案

XMLHttpRequest(又名 AJAX)主要是为文本内容设计的,因此二进制数据(尤其是空字符)可能无法正确转换。第一个检查是将检索到的数据的大小与实际文件大小进行比较。

至少在 Firefox 上,似乎有一种方法可以专门检索二进制数据,如下所述:Handling binary data .

关于javascript - JavaScript 中的 BMP 解码并绘制到 Explorer Canvas,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3877876/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com