Reverse order of bit in repeating seqence of byte string
Francesco Bochicchio
bockman at virgilio.it
Fri Jan 2 14:29:11 EST 2009
imageguy ha scritto:
> I am looking for the most efficient method of replacing a repeating
> sequence in a byte string returned from a imaging .dll, connected via
>
> I receive the byte string with the following sequence 'bgrbgrbgrbgr'
> and I would like to convert this to 'rbgrbgrbgrbg'
> FWIW, the string is created using ctypes.create_string_buffer function
>
> The following code works but feels a bit clunk and is rather slow too.
>
> blist = list(buffer)
> for start in xrange(0,len(blist), 3):
> try:
> blue = blist[start]
> red = blist[start+2]
> blist[start] = red
> blist[start+2] = blue
> except IndexError:
> pass
>
> new_buffer = ''.join(blist)
>
> new_buffer is then passed to a wx program to create and image.
>
> Any thoughts comments would be appreciated.
>
> geoff.
>
> PS: I started this post earlier, but I think I hit the send button
> too soon. My apologies to the group for sloppy typing.
>
You could try the same algorithm on an array.array object : it might be
faster.
Ciao
----
FB
More information about the Python-list
mailing list