Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Windows .bmp文件格式的最大分辨率_Windows_Bitmap_Limit_Fractals_Mandelbrot - Fatal编程技术网

Windows .bmp文件格式的最大分辨率

Windows .bmp文件格式的最大分辨率,windows,bitmap,limit,fractals,mandelbrot,Windows,Bitmap,Limit,Fractals,Mandelbrot,我制作了一个Mandelbrot分形发生器(我知道他还没有),可以直接渲染到磁盘上生成巨大的分形 我的第一个测试是UHD 4k分辨率,结果非常棒(所有这些例子都是8位颜色)。所以我决定有点疯狂,在两个维度上都放大了10倍,即38400 x 21600。生成的文件似乎无效,因为Photoshop无法打开它,但即使在Windows资源管理器中查看文件属性,也会发现缺少维度/etc 我认为有一个机会,限制是32768,所以我试图通过做一个30000 x 30000的测试来低于这个限制。这似乎仍然是无效

我制作了一个Mandelbrot分形发生器(我知道他还没有),可以直接渲染到磁盘上生成巨大的分形

我的第一个测试是UHD 4k分辨率,结果非常棒(所有这些例子都是8位颜色)。所以我决定有点疯狂,在两个维度上都放大了10倍,即38400 x 21600。生成的文件似乎无效,因为Photoshop无法打开它,但即使在Windows资源管理器中查看文件属性,也会发现缺少维度/etc

我认为有一个机会,限制是32768,所以我试图通过做一个30000 x 30000的测试来低于这个限制。这似乎仍然是无效的

降到10000 x 10000很好,所以我想知道文件格式的限制是什么


文件大小不应该是个问题,因为即使10x4k分辨率的文件也低于1GB。

看起来BMP的最大大小可以是32Kx32K和2Gx2G像素。这是我找到的链接

我不知道为什么,但Windows位图的最大尺寸是32768x32768像素。我记得,它们实际上是在Windows 1.0之前开发的。我记得看到的第一份官方文件是在Windows3.1发布之后。当时,他们可能认为这个值大得离谱:)这两个参数都被定义为DWORD(32位整数)。宽度参数是无符号的,高度参数是有符号的(负数反转图像)。

限制应该是标头中的dword(32位)项:在0x02文件大小(如果使用压缩:在0x12 x-max,在0x16 y-max)

(假设0x22数据字节%4处的条目==0)

我对自己生成的文件也有类似的问题:24284x24464像素(594.08mpixels)。Win10文件浏览器没有显示任何大小或深度,xnview、gimp、paint、ppt、internet explorer、edge、chrome都没有显示任何内容

firefox在短时间内显示了图片,但随后切换到显示一个黑匣子

唯一有效的程序是irfanview


(希望这是一个有效的答案——因为我似乎无法发表评论)

是的,我也发现了,但这不是我的测试所显示的。正如我在上面的帖子中提到的,我尝试了30k x 30k,但没有效果。试试usuall-1技巧,使其成为2999x29999:-)或更小的东西,当然。我刚刚尝试了一个23040x4320位图,它会给我一个图像,以覆盖我的三重高清桌面和2x AA,它可以工作,所以限制在30k x 30k之间。这将取决于图像查看器的限制(除了标题大小字段)和可用内存量。8位图像大小32000x32000将需要大约1G字节的内存。我知道这一点,但格式存在一个根本问题,这意味着没有正确读取头以报告文件格式。无论如何,我使用的机器有32GB,所以内存不是问题。用于编写bmp的代码逐行执行,因此所需内存也少得多。我一直在玩8位调色板.bmp图像的制作。尺寸16000 x 16000被MS Paint拒绝,但被Paint.net和一位临时观众接受(ULead由一家相机制造商提供)。我刚刚尝试了32000 x 32000,但被paint.net拒绝,Ulead识别了(大小正确),但只显示缩略图。Win7和4Gb。很有趣。我以为Photoshop会打开任何有效的东西。你有32k x 32k的文件吗?如果它能工作,那么我的代码编写头可能有问题。出于兴趣,您使用的是哪个版本的bmpheader?从技术上讲,这个回答不是答案。请考虑将其作为原问题或已接受答案的评论。