c++ - 如何将图像 append 到多页图像?

标签 c++ pdf imagemagick append tiff

我需要以编程方式将新图像 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/

相关文章:

具有(非常)快速和可靠切换的 C++ 生产者消费者队列

c++ - 默认可复制派生类

c++ - 使用基类指针调用带有派生类参数的模板化函数

android - 我想让我的应用程序打开 pdf

javascript - 使用 jsPDF 从 Iframe 内容下载 PDF 文件

imagemagick - 如何改善 ImageMagick 中蒙太奇的图像输出?

imagemagick - 如何使用 ImageMagick/GraphicsMagick 像三角形一样连接 3 个图像

python - Wand 将 pdf 转换为 jpeg 并将页面存储在类似文件的对象中

c++ - 放入现有缓冲区

pdf - 在 netsuite 高级 pdf 模板中,无论如何都可以限制字符串中的字符