2013-05-23 9 views
16

Ich nehme ein JPG-Bild und benutze numpys fft2, um ein neues Bild zu erstellen/speichern. Allerdings wirft es diesen FehlerPIL kann den Modus F nicht in JPEG schreiben

"IOError: cannot write mode F as JPEG" 

Gibt es ein Problem mit CMYK und JPEG-Dateien in 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() 

Antwort

31

Versuchen Sie das Bild in RGB konvertieren:

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

Was passiert, wenn ein Bild in Graustufen? – cerebrou

+0

Eigentlich funktioniert es auch. – cerebrou

+2

Bump, was wenn ich als Graustufen speichern möchte? – Hakaishin