javascript - 如何使用带有原始数据而不是图像的 createImageBitmap
问题描述
我正在编写一个数据可视化应用程序,它需要我处理非常大的 2D 数据数组并将该数据转换为按比例缩小的图像,以便在 DOM 的画布中显示。
我遇到了 DOM 画布大小限制。我的数组可以大到 5000 x 5000。我想通过createImageBitmap()
同时缩小并将大数组转换ImageBitMap
为更小的尺寸 - 256 x 256 - 以插入屏幕画布来绕过画布大小限制。
如何将原始数组数据转换为正确的格式?这种方法会奏效吗?
解决方案
您可以在将图像渲染到画布之前创建和操作图像。不过,5000x5000 对于画布来说不应该太大。你遇到了什么限制?这里的答案包括在画布上调整大小然后抓取数据。
var raw = new Uint8ClampedArray(5000*5000*4); // 4 for RBGA
var imageData = new ImageData(raw, 5000,5000);
var bitmap = createImageBitmap(imageData);
推荐阅读
- java - Double.toString 总是产生与双文字完全相同的结果吗?
- python - 如何从pygame中的if语句中传输文本?
- r - 在 R 中将值转换为日期
- reactjs - React-Table:行选择 - 无法选择多行
- sql - Oracle SQL 不使用 % 运算符打印偶数 ID
- unix - 从 txt 文件 3 中获取在 unix 中得分最高的学生的姓名?
- c# - 铸造通用 EntityFramework 核心表达式
- python - 如何根据条件创建多个新数据框,这些数据框是主数据框的子集并动态唯一地命名它们?
- python - 更改 DataFrame 的副本
- python - 从 sys 导入 exit 是运行内置函数还是模块中的函数?