gm -limit Pixels 10MP

Bob Friesenhahn <[email protected]> Tue, 15 Apr 2008 23:45:55 -0500 (CDT)
Newsgroups gmane.comp.video.graphicsmagick.tools
Message-ID <[email protected]>
The latest GraphicsMagick 1.2 snapshot includes a new '-limit Pixels' 
option to allow you to limit the maximum number of pixels in one 
image.  The resource limit code has been completely re-written.  The 
value argument to -limit is somewhat changed in that it accepts an 
unscaled value (rather than in megabytes) but normal binary suffixes 
are supported so you can specify "10MB" to mean 10 megabytes.

The new Pixels resource limit should be useful for sites which are 
exposed to image files with uncontrolled sizes, or which may appear 
small but uncompress to an outrageous size.  The Pixels resource limit 
does not restrict the number of images which may be processed at once.

% gm convert -list resource
Resource Limits
----------------------------------------
     Disk:  Unlimited
     File:        128
      Map:      1.9GB
   Memory:      1.9GB
   Pixels:    409.6MP

% gm identify tiger-2400-rgb16.tiff
tiger-2400-rgb16.tiff TIFF 18167x18900+0+0 DirectClass 16-bit 1.9G 0.000u 0:01

% gm convert -limit Pixels 10MP tiger-2400-rgb16.tiff crap.tiff
gm convert: Image pixel limit exceeded (see -limit Pixels) (tiger-2400-rgb16.tiff).

% gm convert -debug resource tiger-2400-rgb16.tiff crap.tiff
23:38:11 0:01 0.000u 1479 
resource.c/AcquireMagickResource/220/Resource:
   pixels +327.5MP/----/409.6MP
23:38:11 0:01 0.000u 1479 
resource.c/AcquireMagickResource/220/Resource:
   memory !3.2GB/0B/1.9GB
23:38:11 0:01 0.000u 1479 
resource.c/AcquireMagickResource/220/Resource:
   disk +2.6GB/2.6GB/Unlimited
23:38:11 0:01 0.000u 1479 
resource.c/AcquireMagickResource/220/Resource:
   map !2.6GB/0B/1.9GB
23:38:11 0:01 0.000u 1479 
resource.c/AcquireMagickResource/220/Resource:
   file +1/1/128
23:38:27 0:17 16.570u 1479 
resource.c/LiberateMagickResource/614/Resource:
   file -1/0/128
23:38:27 0:17 16.580u 1479 
resource.c/LiberateMagickResource/614/Resource:
   disk -2.6GB/0B/Unlimited

% gm convert -debug resource -limit Pixels 410MP tiger-2400-rgb16.tiff 
crap.tiff
23:39:26 0:01 0.000u 1483 
resource.c/SetMagickResourceLimit/743/Resource:
   Set pixels resource limit to 410.0MP
23:39:26 0:01 0.000u 1483 
resource.c/AcquireMagickResource/220/Resource:
   pixels +327.5MP/----/410.0MP
23:39:26 0:01 0.000u 1483 
resource.c/AcquireMagickResource/220/Resource:
   memory !3.2GB/0B/1.9GB
23:39:26 0:01 0.000u 1483 
resource.c/AcquireMagickResource/220/Resource:
   disk +2.6GB/2.6GB/Unlimited
23:39:26 0:01 0.000u 1483 
resource.c/AcquireMagickResource/220/Resource:
   map !2.6GB/0B/1.9GB
23:39:26 0:01 0.000u 1483 
resource.c/AcquireMagickResource/220/Resource:
   file +1/1/128
23:39:40 0:15 14.370u 1483 
resource.c/LiberateMagickResource/614/Resource:
   file -1/0/128
23:39:40 0:15 14.380u 1483 
resource.c/LiberateMagickResource/614/Resource:
   disk -2.6GB/0B/Unlimited

% gm convert -debug resource -limit Pixels 10MP tiger-2400-rgb16.tiff crap.tiff
23:40:02 0:01 0.000u 1485 
resource.c/SetMagickResourceLimit/743/Resource:
   Set pixels resource limit to 10.0MP
23:40:02 0:01 0.000u 1485 
resource.c/AcquireMagickResource/220/Resource:
   pixels !327.5MP/----/10.0MP
23:40:02 0:01 0.000u 1485 pixel_cache.c/OpenCache/2962/Resource:
   Image pixel limit exceeded (see -limit Pixels) (tiger-2400-rgb16.tiff)
gm convert: Image pixel limit exceeded (see -limit Pixels) (tiger-2400-rgb16.tiff).


Please let me know what you think.

Bob
======================================
Bob Friesenhahn
[email protected], http://www.simplesystems.org/users/bfriesen/
GraphicsMagick Maintainer,    http://www.GraphicsMagick.org/


-------------------------------------------------------------------------
This SF.net email is sponsored by the 2008 JavaOne(SM) Conference 
Don't miss this year's exciting event. There's still time to save $100. 
Use priority code J8TL2D2. 
http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone