On Fri, Nov 5, 2010 at 7:16 AM, loz.accs <loz.a...@gmail.com> wrote: > [...] > > Image object (Image.fromstring) was created successfully, but red and > blue colors was swapped. > So my question: is there any way to swap colors in image using PIL?
My naive (and slow) implementation would be something like this (code not tested): def swap(image): width, height = image.size() res = Image.new("RGBA", (width, height)) data1 = image.load() data2 = res.load() for y in range(height): for x in range(width): r, g, b, a = data1[x, y] data2[x, y] = (b, g, r, a) del image return res However, be aware that even if the format is BGRx on your machine doesn't mean it's the same on a different machine (or even on your machine with a different resolution), as the screen format will depend on the graphics card and driver. Usually the drivers will have a way to tell which format the screen is in (i.e. RGBx or BGRx), so I advice you to check the format and pass this information on to the Python code, or convert it to RGBx before handing the image buffer over to Python. Anders _______________________________________________ Image-SIG maillist - Image-SIG@python.org http://mail.python.org/mailman/listinfo/image-sig