cannot write mode RGBA as JPEG

PythonPython Imaging-LibraryPython 3.6

Python Problem Overview


I am learning to use 'pillow 5.0' following book 'Automate the boring stuff with python'

The info about the image object

In [79]: audacious = auda
In [80]: print(audacious.format, audacious.size, audacious.mode)
PNG (1094, 960) RGBA

When I tried to convert filetype, it report error.

In [83]: audacious.save('audacious.jpg')
OSError: cannot write mode RGBA as JPEG

There's no such a n error in book.

Python Solutions


Solution 1 - Python

JPG does not support transparency - RGBA means Red, Green, Blue, Alpha - Alpha is transparency.

You need to discard the Alpha Channel or save as something that supports transparency - like PNG.

The Image class has a method convert which can be used to convert RGBA to RGB - after that you will be able to save as JPG.

Have a look here: the image class doku

im = Image.open("audacious.png")
rgb_im = im.convert('RGB')
rgb_im.save('audacious.jpg')

Adapted from dm2013's answer to Convert png to jpeg using Pillow

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
Questionuser9062604View Question on Stackoverflow
Solution 1 - PythonPatrick ArtnerView Answer on Stackoverflow