我需要以编程方式将新图像 append 到多页 TIFF 或 PDF 中。问题是单个图像(组成多页图像)具有很大的分辨率,ImageMagick 首先将整个多页图像加载到内存中,这会消耗所有系统内存。
我需要能够 append 到多页图像,而不必将整个图像加载到内存中。这可以用 ImageMagick 实现吗?我应该使用哪些 C/C++ 函数?
最佳答案
我不确定这在 ImageMagick 中是否可行。
对于 TIFF,您需要做的是从一个 TIFF 中读取 TIFF 目录,并在要 append 的目录中创建新目录,然后通过缓冲区复制编码图像。不需要解码图像来执行此操作,但您必须小心正确地执行此操作并引入与页面关联的任何目录(例如关联的元数据)。
我认为 libtiff(ImageMagick 包装的)提供的函数可以帮助您做到这一点。
对于 PDF,这也很难——此页面有一些替代方案:
http://ansuz.sooke.bc.ca/software/pdf-append.php
还有许多可以操作 PDF 的第 3 方 SDK(ActivePDF、PDFTron、Amyuni)。
免责声明:我为 Atalasoft 工作:我们有一个 .NET SDK,它具有针对 TIFF(和纯图像 PDF)的此功能。它可以通过 C++/CLI 调用,但不确定您是否在 Windows 上。
关于c++ - 如何将图像 append 到多页图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1383465/