PIL: using fromarray() with binary data and writing coloured text
Asked Answered
C

1

15

I've a basic problem with Python's library PIL. I have some .txt files containing only 0 and 1 values arranged in matrices. I have transformed the "binary" data in an image with the function Image.fromarray() included in PIL. The format of my data produces black&white images if I multiply it by 255, and that's fine for me. Now I want to add some text to the image, using the appropriate text function included in PIL, but I want that text to be coloured. Clearly, I can't do it because the image obtained from fromarray has a grayscale colormap. How can I change it?

Cowley answered 17/1, 2011 at 9:59 Comment(0)
U
20

You can get a RGB image from a monochromatic one like this:

from PIL import Image
from numpy import eye                                                            
arr = (eye(200)*255).astype('uint8') # sample array
im = Image.fromarray(arr) # monochromatic image
imrgb = im.convert('RGB') # color image
imrgb.show()
Ursulina answered 17/1, 2011 at 12:25 Comment(1)
Why not just use im = Image.fromarray(arr).convert('RGB')?Religieux

© 2022 - 2024 — McMap. All rights reserved.