Convert images to PIL, pgm file error

When trying to do the following in python PIL library:

Image.open('Apple.gif').save('Apple.pgm') 

code failure:

  Traceback (most recent call last): File "/home/eran/.eclipse/org.eclipse.platform_3.7.0_155965261/plugins/org.python.pydev_2.6.0.2012062818/pysrc/pydevd_comm.py", line 765, in doIt result = pydevd_vars.evaluateExpression(self.thread_id, self.frame_id, self.expression, self.doExec) File "/home/eran/.eclipse/org.eclipse.platform_3.7.0_155965261/plugins/org.python.pydev_2.6.0.2012062818/pysrc/pydevd_vars.py", line 376, in evaluateExpression result = eval(compiled, updated_globals, frame.f_locals) File "<string>", line 1, in <module> File "/usr/lib/python2.7/dist-packages/PIL/Image.py", line 1439, in save save_handler(self, fp, filename) File "/usr/lib/python2.7/dist-packages/PIL/PpmImagePlugin.py", line 114, in _save raise IOError, "cannot write mode %s as PPM" % im.mode IOError: cannot write mode P as PPM 

The code works fine with conversion to BMP, but JPG also fails. Strange, another file (JPG to PGM) is working fine.

Convert a different format. I.e:

 Image.open('Apple.gif').save('Apple.bmp') 

work.

Any idea why?

+4
source share
1 answer

You need to convert the image to RGB mode to do this.

 im = Image.open('Apple.gif') im = im.convert('RGB') im.save('Apple.pgm') 
+11
source

Source: https://habr.com/ru/post/1438148/


All Articles