【问题标题】:How can I append images to a multi-page image? [closed]如何将图像附加到多页图像? [关闭]
【发布时间】:2009-09-05 14:33:09
【问题描述】:

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

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

【问题讨论】:

    标签: c++ pdf imagemagick append tiff


    【解决方案1】:

    我不确定在 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 上。

    【讨论】:

      【解决方案2】:

      实际上我昨天刚刚经历过这个。 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

      【讨论】:

        【解决方案3】:

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

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

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

        【讨论】:

          猜你喜欢
          • 2022-01-07
          • 1970-01-01
          • 2011-06-08
          • 1970-01-01
          • 1970-01-01
          • 2011-03-17
          • 1970-01-01
          • 1970-01-01
          • 2017-04-11
          相关资源
          最近更新 更多