[Image-SIG] Does PIL ImageDraw create shape objects or stain pixels?
Chris.Barker
Chris.Barker at noaa.gov
Wed Nov 2 22:48:12 CET 2011
On 10/26/11 2:49 PM, Jeff Brantley wrote:
> I am working on code to draw tens or hundreds of thousands of squares
> and connecting lines using the tkinter canvas, and it is incredibly slow
> because, as I understand it, the canvas keeps the individual shape
> objects around in memory and tests for the current visible bounding box
> to touch them, and redraws them.
That may or not be why it's slow...
> I am wondering whether PIL's ImageDraw module behaves in this manner, or
> whether it instead just paints the shapes onto a raw pixel buffer,
> effectively "staining" the pixels, rather than holding onto thousands of
> identical objects.
you are right -- PIL just does the drawing, and is not any kind of
object canvas.
>I assume that this would be much faster if it is the
> case.
perhaps, and perhaps not. Keeping the objects around per-se isn't
necessarily a slow process. But certainly PIL's drawing is simpler.
I've found PIL drawing to be pretty slow, but for your use case, it may
well be fine.
For higher quality, you may want to look into Agg-draw:
http://effbot.org/zone/pythondoc-aggdraw.htm
I don't know if it's been rolled into PIL or not.
Do you need a GUI of some sort? or are you just drawing an image to save
to a file or something?
-Chris
> Thanks for your help,
> Jeff
>
>
> _______________________________________________
> Image-SIG maillist - Image-SIG at python.org
> http://mail.python.org/mailman/listinfo/image-sig
--
Christopher Barker, Ph.D.
Oceanographer
Emergency Response Division
NOAA/NOS/OR&R (206) 526-6959 voice
7600 Sand Point Way NE (206) 526-6329 fax
Seattle, WA 98115 (206) 526-6317 main reception
Chris.Barker at noaa.gov
More information about the Image-SIG
mailing list