我正在开发一个将许多图像作为字节 [] 存储在数据库中的系统。每个 byte[] 已经是一个多页 tiff,但我需要检索图像,将它们全部转换为一个多页 tiff。系统以前使用 System.Drawing.Image 类,带有 Save 和 SaveAdd - 这很好,因为它逐步保存文件,因此内存使用量最小,但是遇到了 GDI+ 并发问题 - 这是在后端运行的在 COM+ 中。
这些方法被转换为使用 System.Windows.Media.Imaging 类、TiffBitmapDecoder 和 TiffBitmapEncoder,在两者之间进行了一些按摩。这解决了并发问题,但我正在努力寻找一种方法来逐步保存图像(即逐帧)以限制内存使用,因此可以操作的图像大小要低得多(即我创建了一个测试 1.2 GB 图像使用 GDI+ 类,并且可以继续,但使用其他方法只能创建一个 ~600MB 文件)。
有没有办法逐步保存多页 tiff 图像以避免内存问题?如果多次在 TiffBitmapEncoder 上调用 Save,则会引发错误。