web-dev-qa-db-ja.com

ImageMagickの `convert`ユーティリティは、PDF input

*-> PNG変換にはImageMagickのconvertをよく使用しますが、PDFが50ページを超える場合— convertは3 Gib(!!! )のメモリ。私はそれが最初にすべてをロードすると思います。

それは受け入れられません。 PDFページごとに読む必要があります。なぜそれらすべてを一度にまとめるのですか?

どういうわけかそれを調整する方法があるのでしょうか?または何か良い選択肢はありますか?

10
kolypto

以下で解決:

cat <<EOF > /etc/profile.d/ImageMagick.sh
# Set ImageMagick memory limits: it eats too much
export MAGICK_MEMORY_LIMIT=1024 # Use up to *MB of memory before doing mmap
export MAGICK_MAP_LIMIT=1024    # Use up to *MB mmaps before caching to disk
export MAGICK_AREA_LIMIT=4096   # Use up to *MB disk space before failure
export MAGICK_FILES_LIMIT=1024  # Don't open more than *file handles
EOF
10
kolypto

私は以下を使用しています:

convert -limit memory 64 -limit map 128 original.djvu newfile.pdf

メインドライブのスペースが限られているため、変数を追加します

env MAGICK_TMPDIR=/Host/Temp convert -limit memory 64 -limit map 128 original.djvu newfile.pdf
8
jimmy

キャッシュを試しましたか?

マニュアルページから

-キャッシュしきい値

      megabytes of memory available to the pixel cache.

      Image pixels are stored in memory until 80 megabytes of
      memory have been consumed.  Subsequent pixel operations

      are cached on disk.  Operations to memory are  significantly 
      faster but if your computer does not have a sufficient 
      amount of free memory you may  want  to  adjust
      this threshold value.
8
Shikoru