python 2.6: how to modify a PIL image from C without copying forth and back

Tim Roberts timr at
Wed Mar 3 07:34:29 CET 2010

News123 <news123 at> wrote:
>I created a grayscale image with PIL.
>Now I would like to write a C function, which reads a;most all pixels
>and will modify a few of them.
>My current approach is:
>- transform the image to a string()
>- create a byte array huge enough to contain the resulting image
>- call my c_function, which copies over the entire image in order
>   to modify a few pixels
>How can I achieve this with the least amount of copies?

If it were me, I'd be tempted to go peek at the source code for PIL, then
pass the Image object to my C routine and poke at the innards to find the
buffer with the pixels.
Tim Roberts, timr at
Providenza & Boekelheide, Inc.

More information about the Python-list mailing list