Naprawa błędu "cache resources exhausted" w ImageMagick

  pawel   April 17, 2019, 5:42 p.m.

Kilka tygodni temu skanowałem stare rodzinne zdjęcia. Zależało mi na jakości i szczegółach dlatego część wynikowych plików miała spory rozmiar - od 50 do 100MB. Aby ograniczyć ich rozmiar na dysku postanowiłem je przeskanować do niższej rozdzielczości.

W tym celu wydałem polecenie:

convert -resize 4160x -quality 95 image.png out/image.png

niestety na konsoli pojawił się taki błąd:

convert-im6.q16: cache resources exhausted `image.png' @ error/cache.c/OpenPixelCache/4080.

Po krótkich poszukiwaniach natknąłem się na ten wątek, z którego wynika, że problem związany jest z limitami ustawionymi w pliku /etc/ImageMagick-6/policy.xml.

Zmieniłem wartości w pliku na te poniżej i problem został rozwiązany.

  <policy domain="resource" name="memory" value="2GiB"/>
  <policy domain="resource" name="map" value="4GiB"/>
  <policy domain="resource" name="width" value="128KP"/>
  <policy domain="resource" name="height" value="128KP"/>
  <!-- <policy domain="resource" name="list-length" value="128"/> -->
  <policy domain="resource" name="area" value="1.0737GP"/>
  <policy domain="resource" name="disk" value="8GiB"/>
  <policy domain="resource" name="file" value="768"/> -->
  <policy domain="resource" name="thread" value="4"/> -->
  <policy domain="resource" name="throttle" value="0"/> -->

Leave comment