【问题标题】:Is there a way to make HTML Canvas unlimited in size有没有办法让 HTML Canvas 的大小不受限制
【发布时间】:2017-12-19 07:11:46
【问题描述】:

大家好,

我正在做一个用彩色线条表示数据的项目。

例如,如果您全天给我 300 个天空颜色样本。我想把它们画在这样的一条线上:

左边的亮色代表白天,右边的暗色代表夜间。

这很容易,但是对于我的实际项目,我有大约一百万个样本而不是 300 个。我想使用这些数据制作一条类似于上面的线,但宽度为 1,000,000 像素,高度为 16。

它必须是图像格式,因为我将通过不同的图像压缩算法(即 jpg、jpg2000、webp ect..)运行此图像并在结果中搜索模式。

我想为此使用 HTMl Canvas,但是每个 majoy 浏览器中 html canvas 的最大宽度远小于一百万。

铬:

最大高度/宽度:32,767 像素

火狐:

最大高度/宽度:32,767 像素

IE:

最大高度/宽度:8,192 像素

图片总面积很正常,只是Canvas不喜欢的宽度。

有没有办法在浏览器中关闭这些限制?或者是否有其他编程环境可以轻松设置来构建这样的图片?

感谢您的帮助!

【问题讨论】:

  • 您是否有任何理由需要实际图像而不仅仅是使用原始值?另外,你为什么不写一些简单的、未压缩的图像文件,比如 BMP 或 TGA,你只写一个简单的标题,然后是原始像素数据?
  • @Mario 感谢您的回复。将其保存为图像是最好的,因为我想对其进行测试的压缩算法都是基于图像的。将其保存为 BMP 是我没有想到的一个有趣的想法。我将不得不研究制作标题所需的规格。非常感谢您。
  • 很可能您使用了错误的工具。如果您需要获取图像,则无需使用浏览器。试试 adobe photoshop 或类似的东西。
  • 不是没有办法,也没有其他编程环境可以满足您的要求,因为您要测试的文件格式本身的宽度限制小于您的要求。 (JPEG 为 65,535,webp 为 16383)。我不清楚您的最终目标是什么,但您可能只是想在合并结果之前分析较小的样本。

标签: javascript css html canvas


【解决方案1】:

如果这仅用于显示目的并且限制使用 JavaScript,那么理想的解决方案是将数据拆分为块并添加导航按钮。在特定时间仅显示您的图像的一部分,当有人导航prev/next 时重新渲染您的图像。请参阅下面的模型

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-08-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-04
    • 1970-01-01
    • 2017-01-20
    相关资源
    最近更新 更多