我必须将 PDF 渲染成非常高分辨率的图像(比如说高达甚至超过 100,000 * 80,000 像素)。
我设法做到这一点,通过将渲染分成几个切片然后使用 NSOperationQueue 渲染每个切片,基本上使用 drawInRect:fromRect:operation:fraction: 将 NSImage pdf 表示绘制到一个新的 NSImage 中,然后将 TIFFRepresentation 保存到文件。
一切都很好,多核而且速度很快,我几乎很高兴。无论如何,我需要在渲染它们之后再次加入这些切片,以获得单个 TIFF 文件。
我会尝试使用 NSInputStream 和 NSOutputStream 合并文件,但由于每个文件都是完整的 tiff 表示,将原始字节合并在一起会导致无法读取的图片文件。有没有办法将图像文件合并在一起而不将它们完全加载到内存中,即不使用 NSImage 方法?
否则我可以保存原始像素字节而不是 tiff 表示,然后将它们与 NSInputStream/NSOutputStream 连接,但是我如何将整个字节文件转换为可识别的 TIFF,而无需再次将巨大的东西加载到 ram 中?