2

我需要以编程方式将新图像附加到多页 TIFF 或 PDF。问题是单个图像(构成多页图像)具有较大的分辨率,ImageMagick 首先将整个多页图像加载到内存中,这会消耗系统的所有内存。

我需要能够附加到多页图像而不必将整个图像加载到内存中。ImageMagick 可以做到这一点吗?我应该使用哪些 C/C++ 函数?

4

3 回答 3

2

我不确定在 ImageMagick 中是否可行。

对于 TIFF,您需要做的是从一个 TIFF 中读取 TIFF 目录,并在要附加的那个中创建新的目录,然后通过缓冲区复制编码的图像。不需要对图像进行解码来执行此操作,但您必须小心正确地执行此操作并带入与页面关联的任何目录(如关联的元数据)。

我认为 libtiff(ImageMagick 包装的)提供了可以帮助您做到这一点的功能。

对于 PDF,它也很难——这个页面有一些选择:

http://ansuz.sooke.bc.ca/software/pdf-append.php

还有许多可以操作 PDF 的 3rd 方 SDK(ActivePDF、PDFTron、Amyuni)。

免责声明:我为Atalasoft工作:我们有一个 .NET SDK,它具有 TIFF(和纯图像 PDF)的此功能。它可以通过 C++/CLI 调用,但不确定您是否在 Windows 上。

于 2009-09-09T14:26:08.270 回答
1

事实上,我昨天刚刚经历了这一切。ghostscript 的附加速度要快得多。

首先 cd 进入保存要附加到 pdf 的 tiff 的目录,然后

$> for i in `ls *.tif | sort -g`; do echo -n $i" "  >> list.txt; done <br>
$> gs -q -sPAPERSIZE=letter -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -sOutputFile=out.pdf $(cat list.txt)

另请查看http://www.novell.com/coolsolutions/tools/17083.html

于 2009-09-20T19:15:21.167 回答
0

使用 Imagemagick,创建多页 PDF 非常容易。这不完全是问题的答案,而是我在谷歌上搜索的答案......

无论如何...使用 ImageMagick 将 3 张图像转换为一个 3 页的 PDF:

convert imageForPage1.jpg imageForPage2.jpg imageForPage3.jpg resulting3Pages.pdf
于 2009-09-20T18:57:20.080 回答