[Image-SIG] float rgba list -> Image

Charlie Clark charlie.clark at clark-consulting.eu
Wed Aug 31 17:06:37 CEST 2011

Am 31.08.2011, 16:21 Uhr, schrieb Ingo Randolf <ingo at quitch.net>:

> Hi all.
> I have a list with float-values describing an image like this:
> [R, G, B, A, R, G, B, A, R, G, B, A, R, G, B, A, R, G, B, A, ... etc.]
> the RGBA-values are from 0. - 1.
> is there a clever way to make a PIL-Image out of something like this?
> i played around with putdata... and came along with this, very, very  
> slow solution:
> px = list-of-rgba-values-as-floats
> img = the-image
> #make int-tuples
> newdata = [(int(px[(x*4)]*255), int(px[(x*4)+1]*255),  
> int(px[(x*4)+2]*255), int(px[(x*4)+3]*255)) for x in range( img.size[0]  
> * img.size[1] )]
> Image.putdata(newdata)
> well i never saw a result, because it took too long for my short  
> patience...

You can turn that list into a list of tuples for each pixel like this

new_array = []
for idx in range(0, len(l), 4)

You can probably wrap this in some functional programming so that you are  
not using memory for transitional data structures.

Charlie Clark
Managing Director
Clark Consulting & Research
German Office
Helmholtzstr. 20
D- 40215
Tel: +49-211-600-3657
Mobile: +49-178-782-6226

More information about the Image-SIG mailing list