如何合并最大尺寸的位图

问题描述 投票:0回答:1

我有 6 个位图,像素大小为 31k x 21.6k,这大约是 24 位 RGB 图像的最大值。现在我想从中生成一个 PNG 文件,其大小约为 93k x 65k 像素。 我也不想失去质量,所以缩小规模不是一个选择。

有什么办法可以做到吗? 如果代码中无法实现,是否有任何软件可以做到这一点?

c# image bitmap png
1个回答
0
投票

c# 位图在任一方向上限制为 32767 像素。像 WriteableBitmap 这样的 WPF 类似乎也有类似的限制。您还需要处理 C# 数组的 2^31 项限制。所以我认为使用内置工具这是不可能的。

png格式应该允许您想要大小的图像,但是您需要找到可以处理如此大文件的编码器或图像处理库。我不知道有这样的库。请注意,合并图像是最简单的部分,如果需要,您可以分配本机内存并使用指针将像素行复制到单个连续内存块。但您可能不想编写自己的 png 编码器。 Ofc,无论你打算用什么软件打开这些图像也需要支持这么大的图像。

但是您应该做的是将位图分割成可管理大小的区域,可能包括多个分辨率,也称为“图像金字塔”。有专门为此构建的图像格式,“深度缩放”是一种技术,而且很可能还有其他技术。如果您自己的软件既创建又读取图像,这将是迄今为止最好的方法。

© www.soinside.com 2019 - 2024. All rights reserved.