I am trying to resize some images, most of which are JPG. But in a few images, I am getting the error:
Traceback (most recent call last): File "image_operation_new.py", line 168, in modifyImage tempImage.save(finalName); File "/Users/kshitiz/.virtualenvs/django_project/lib/python2.7/site- packages/PIL/Image.py", line 1465, in save save_handler(self, fp, filename) File "/Users/kshitiz/.virtualenvs/django_project/lib/python2.7/site- packages/PIL/JpegImagePlugin.py", line 455, in _save raise IOError("cannot write mode %s as JPEG" % im.mode) IOError: cannot write mode P as JPEG
I am not changing the image type and I'm using the pillow library. My OS is Mac OS X. How can I resolve the issue?
You need to convert the image to RGB mode.
Image.open('old.jpeg').convert('RGB').save('new.jpeg')
This answer is quite old, however, I thought I will put a better way to do the same by checking for the mode before doing the conversion:
if img.mode != 'RGB': img = img.convert('RGB')
This is required to save your image in JPEG format.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With