Re: Virtual pixels and pixel cache

Larry Wimble <[email protected]> Mon, 15 Nov 2010 14:34:25 -0500
Newsgroups gmane.comp.video.image-magick.user
Message-ID <[email protected]>
da.mihi.sis.bubulae.frustrum.assae.solana.tuberosa.in.modo.gallico.fricta.ac.quassum.lactatum.coagulatum.crassum@imagemagick.org 
wrote:
>> does the pixel cache expand to accommodate the "virtual" area?
>>     
>
> Yes, but based on scanline size, not image area.
>
> Pixels resource consumption is relative to the area of the image.
> There are additional memory requirements to support N number of scanlines
> where N is the number of threads available to ImageMagick if its OpenMP
> enabled times the number of scanlines you request.  Let's assume OpenMP is
> enabled for up to 4 threads.  Let's also assume our image is 1000x1000.
> Finally assume you want virtual pixels at -100 to 1100 for two scanlines.
> Here, ImageMagick consumes 1000x1000 pixels + 4 * 2 * 1200 which each pixel
> is sizeof(PixelPacket) bytes.  You eliminate the image area memory
> requirement if you cache pixels to disk (e.g. MAGICK_AREA_LIMIT).
>   

Thanks for your timely response.  That explains where  huge chunks of 
memory are being used. 

Would the use of DrawPushClipPath() and creating a rectangle all the way 
around my image prevent the pixel cache from being expanded when I start 
drawing, or do I need to clip the lines at the image boundary myself ? 

Thanks Again,
Larry