C++ 如何将图像附加到多页图像?

C++ 如何将图像附加到多页图像?,c++,pdf,imagemagick,append,tiff,C++,Pdf,Imagemagick,Append,Tiff,我需要通过编程将新图像附加到多页TIFF或PDF。问题是单个图像(组成多页图像)的分辨率很高,ImageMagick首先将整个多页图像加载到内存中,这会消耗系统的所有内存 我需要能够附加到多页图像,而不必将整个图像加载到内存中。使用ImageMagick可以实现这一点吗?我应该使用哪些C/C++函数?我不确定这在ImageMagick中是否可行 对于TIFF,您需要做的是从一个TIFF中读取TIFF目录,并在附加到的TIFF中创建新目录,然后通过缓冲区复制编码图像。这样做不需要对图像进行解码,但

我需要通过编程将新图像附加到多页TIFF或PDF。问题是单个图像(组成多页图像)的分辨率很高,ImageMagick首先将整个多页图像加载到内存中,这会消耗系统的所有内存


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

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

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

我认为libtiff(ImageMagick包装)提供的函数可以帮助您实现这一点

对于PDF,这也很难--此页面有一些替代方案:

还有许多第三方SDK可以操纵PDF(ActivePDF、PDFTron、Amyuni)


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

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

无论如何。。。要使用ImageMagick将3张图像转换为一张3页PDF,请执行以下操作:

convert imageForPage1.jpg imageForPage2.jpg imageForPage3.jpg resulting3Pages.pdf

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

将第一张cd放入保存要附加到pdf的TIFF的目录中 然后

'ls*.tif | sort-g'中的i的
$>;do echo-n$i”“>>list.txt;完成
$>gs-q-sPAPERSIZE=letter-dNOPAUSE-dBATCH-sDEVICE=pdfwrite-sOutputFile=out.pdf$(cat list.txt)
也看看

$> 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)