O utilitário 'convert' do ImageMagick leva * muita memória * com entrada de PDF

9

Costumo usar a conversão convert para * - > do PNG do ImageMagick, mas quando o PDF tem mais de 50 páginas - convert consome mais que 3 Gib (!!!) de memória. Eu acho que primeiro carrega tudo.

Isso é inaceitável. Deve ler PDF página por página, por que diabos todos de uma só vez!

Talvez haja uma maneira de ajustá-lo de alguma forma? Ou alguma boa alternativa?

    
por kolypto 25.12.2009 / 16:07

3 respostas

9

Resolvido com o seguinte:

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
    
por 28.04.2013 / 22:45
7

Já experimentou cache?

Da página do manual

-limite de cache

      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.
    
por 25.12.2009 / 19:17
7

Estou usando o seguinte:

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

Minha unidade principal tem espaço limitado, então prefixo uma variável

env MAGICK_TMPDIR=/host/Temp convert -limit memory 64 -limit map 128 original.djvu newfile.pdf
    
por 30.05.2010 / 19:25