2009-09-05 104 views
2

我需要以編程方式追加到多頁TIFF或PDF新圖像。問題在於單個圖像(組成多頁的圖像)具有較高的分辨率,ImageMagick首先將整個多頁圖像加載到內存中,這會佔用整個系統的內存。如何將圖像附加到多頁圖像?

我需要能夠追加到多頁圖像,而不必將整個圖像加載到內存中。這可能與ImageMagick?我應該使用哪種C/C++函數?

回答

2

我不確定在ImageMagick中可能。

對於TIFF,您需要做的是從一個TIFF中讀取TIFF目錄,並在您要添加的TIFF目錄中創建新目錄,然後通過緩衝區複製編碼圖像。沒有必要對圖像進行解碼來完成此操作,但是您必須小心地正確執行此操作,並將與頁面關聯的任何目錄(如關聯的元數據)都帶出來。

我認爲libtiff(ImageMagick包裝)提供的功能可以幫助你做到這一點。

對於PDF,它也很難 - 這個頁面有一些替代方案:

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

也有許多第三方軟件開發工具包,可以操縱PDF(ActivePDF,PDFTron,Amyuni)。

聲明:我爲Atalasoft工作:我們有一個.NET SDK,它具有TIFF(僅限圖片PDF)功能。它可以通過C++/CLI調用,但不確定是否在Windows上。

0

使用Imagemagick可以非常容易地創建多頁PDF。這不是完全的問題的答案,但我是谷歌搜索...

反正答案...要使用3個圖像轉換爲一個3頁的PDF ImageMagick的:

convert imageForPage1.jpg imageForPage2.jpg imageForPage3.jpg resulting3Pages.pdf 
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