[Pygui] Convert RGBA to BGRA using standard library?

geoff imageguy1206 at gmail.com
Tue Jun 21 14:23:14 CEST 2011


On Sat, May 28, 2011 at 5:55 AM, Greg Ewing <greg.ewing at canterbury.ac.nz>wrote:

> Can anyone think of an efficient way to convert a string
> full of RGBA image data to BGRA, using only what's available
> in the standard library?
>
> I'm trying to add a function to PyGUI for creating an Image
> object from arbitrary data. The problem I'm having is that
> GDI+ on Windows expects BGRA, whereas most other platforms
> deal with RGBA. I don't want to require the user to supply
> the data in different formats on different platforms, so
> PyGUI needs to be able to convert where necessary.
>
> I know the conversion can be done easily using something
> like PIL or numpy, but I'm after a solution that doesn't
> depend on any third-party libraries.
>
> --
> Greg
> ______________________________**_________________
> Pygui mailing list
> Pygui at python.org
> http://mail.python.org/**mailman/listinfo/pygui<http://mail.python.org/mailman/listinfo/pygui>
>


Greg, I had to solve this problem in another application and ended up using
the array module and the with the slice syntax.

import array

input = "rgbaRGBA1234"
ba = array.array('c', input)
ba[0::4], ba[2::4] = ba[2::4], ba[0::4]

print ba.tostring()

>> bgraBGRA3214

It is fairly fast too.

Good luck and keep up the great work.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/pygui/attachments/20110621/bc139afc/attachment.html>


More information about the Pygui mailing list