2013-10-16 70 views
0

我試圖生成一些分形圖像,我可以做得很好。但是,在保存圖像時,我遇到了一些問題,因爲它將它們保存爲灰度而不是顏色。當我用python打開它們時,它顯示正確的顏色。PIL圖像保存爲灰度

的代碼如下

from PIL import Image 
import ImageDraw 
from scipy import misc 
from array import * 
import matplotlib.pyplot as plt 
import scipy 

image = Image.new("L",(SIZE, SIZE)) # create a image SIZE x SIZE 
d = ImageDraw.Draw(image) 
#iterate over x and y, setting a col value for each pixel 
d.point((x, y), col) # it then colors the point (x,y) 
image.save("beta"+str(alpha)+".png", "PNG") 

我使用MacOS X系統,Python的2.7.5。

回答

2

您在L或Luminance模式下創建圖像。這意味着它們是灰度圖像,一個顏色帶。

您需要使用RGB模式,而不是:

image = Image.new("RGB", (SIZE, SIZE)) 

但這也需要你指定的像素,而不是一個簡單的整數時使用(R, G, B)值的元組。 ImageDraw模塊不支持使用字符串設置顏色('#rrggbb'及相關)。

您不會向我們展示如何在您的代碼中定義col,因此很難說明您是否使用RGB圖像的正確格式。

+0

嗯,我正在調整代碼,但更新col值,我只是將它設置爲一個不同的整數值。我將研究使用RGB。那我到底應該怎樣定義col?只是(價值,價值,價值)的元組? –

+0

@DanielAbramovici:是的,一個元組可以。有關其他支持的值,請參閱[ImageDraw文檔](http://effbot.org/imagingbook/imagedraw.htm)。 –

+0

你實際上也可以使用一個整數。我在這裏問完全問題(使用整數的彩色圖像):http://stackoverflow.com/questions/32192671/pil-image-mode-i-is-grayscale/32200857 – Miguel