ImageMagick command line convert -limit values

I was able to find a solution through the ImageMagick forum.

The method was to change the settings for Resource limits in the file handling that in ImageMagick, called policy.xml. In Ubuntu 18.04 that is found in /etc/ImageMagick-6. It is set as read-only, so I temporarily changed the write permissions with sudo chmod 777 policy.xml from within that folder. After making the changes, I switched the permission to 744.

This is what the relevant section of policy.xml looks like:

<policymap>
  <!-- <policy domain="resource" name="temporary-path" value="/tmp"/> -->
  <policy domain="resource" name="memory" value="14GiB"/>
  <policy domain="resource" name="map" value="30GiB"/>
  <policy domain="resource" name="width" value="16MP"/>
  <policy domain="resource" name="height" value="16MP"/>
  <policy domain="resource" name="area" value="40GP"/>
  <policy domain="resource" name="disk" value="30GiB"/>
  <!-- <policy domain="resource" name="file" value="768"/> -->
  <!-- <policy domain="resource" name="thread" value="4"/> -->
  <!-- <policy domain="resource" name="throttle" value="0"/> -->
  <!-- <policy domain="resource" name="time" value="3600"/> -->
  <!-- <policy domain="system" name="precision" value="6"/> -->
  <!-- not needed due to the need to use explicitly by mvg: -->
  <!-- <policy domain="delegate" rights="none" pattern="MVG" /> -->
  <!-- use curl -->
  <policy domain="delegate" rights="none" pattern="URL" />
  <policy domain="delegate" rights="none" pattern="HTTPS" />
  <policy domain="delegate" rights="none" pattern="HTTP" />
  <!-- in order to avoid to get image with password text -->
  <policy domain="path" rights="none" pattern="@*"/>
  <policy domain="cache" name="shared-secret" value="passphrase" stealth="true"/>
</policymap>

The parts that needed changing already have the values I substituted in so I can process the image in question. They are the 3rd to the 8th line, the resource named "memory" to the resource named "disk".

After making those changes, checking in the terminal with identify -list resource returns the new values.


You didn't say what you tried, and I suspect a case problem "magick_area_limit" is not the same as "MAGICK_AREA_LIMIT".

but here are two ways:

Start imagemagick from a script :

#!/bin/bash
export MAGICK_DISK_LIMIT=42GiB
export MAGICK_AREA_LIMIT=42MP
# etc ...
imagemagic "$@"

or, use the env command:

env MAGICK_DISK_LIMIT=42GiB MAGICK_AREA_LIMIT=42MP imagemagick ...

I am using ubuntu 20.0.4 LTS this is an extension to answer from @kim holder

Go to sudo nano /etc/ImageMagick-6/policy.xml

Change the below lines to enable convert image with large size.

  <policy domain="resource" name="memory" value="14GiB"/>
  <policy domain="resource" name="map" value="30GiB"/>
  <policy domain="resource" name="width" value="16MP"/>
  <policy domain="resource" name="height" value="16MP"/>
  <policy domain="resource" name="area" value="40GP"/>
  <policy domain="resource" name="disk" value="30GiB"/>

Read the original answer as well
https://askubuntu.com/a/1041633/970339

Thanks, Hope this clarifies to do the fix fast.