Fastest Way To Loop Through Every Pixel

Simon Forman rogue_pedro at yahoo.com
Thu Jul 27 22:51:44 EDT 2006


Chaos wrote:
> As my first attempt to loop through every pixel of an image, I used
>
>         for thisY in range(0, thisHeight):
>             for thisX in range(0, thisWidth):
>                   #Actions here for Pixel thisX, thisY
>
> But it takes 450-1000 milliseconds
>
> I want speeds less than 10 milliseconds
>
> I have tried using SWIG, and pypy but they all are unsuccessfull in
> compiling my files.

You could try the PIL package.

>From the docs at
http://www.pythonware.com/library/pil/handbook/image.htm

Image.eval(function, image) => image

Applies the function (which should take one argument) to each pixel in
the given image. If the image has more than one band, the same function
is applied to each band. Note that the function is evaluated once for
each possible pixel value, so you cannot use random components or other
generators.

HTH,
~Simon




More information about the Python-list mailing list