2013-05-23 2 views
16

Я беру изображение в формате jpg и используя fft2 для создания/сохранения нового изображения. Однако он вызывает эту ошибкуPIL не может записать режим F в jpeg

"IOError: cannot write mode F as JPEG" 

Есть ли проблема с файлами CMYK и JPEG в PIL ???

p = Image.open('kibera.jpg') 
bw_p = p.convert('L') 
array_p = numpy.asarray(bw_p) 
fft_p = abs(numpy.fft.rfft2(array_p)) 
new_p = Image.fromarray(fft_p) 
new_p.save('kibera0.jpg') 
new_p.histogram() 

ответ

31

Попробуйте преобразовать изображение в RGB:

... 
new_p = Image.fromarray(fft_p) 
if new_p.mode != 'RGB': 
    new_p = new_p.convert('RGB') 
... 
+3

Что делать, если изображение в оттенках серого? – cerebrou

+0

На самом деле, он работает. – cerebrou

+2

Bump, что делать, если я хочу сохранить как оттенки серого? – Hakaishin