The Images API in Google App Engine does not appear to handle CMYK JPEG images properly when applying transforms. On the production server the resulting image looks washed out and on the dev server (where GAE uses PIL) the resulting image is darker and less defined.
It seems like the API assumes all JPEG files are RGB.
Is there a way to detect a CMYK image on Google App Engine?
Is there a way to convert the image to RGB?
JPEG can refer to both a format standard, JIF, and the most widely-used complying implementation, JFIF.
Unfortunately, the Images API has no documented support for detection or conversion of JPEGs encoded using Adobe’s CMYK-based format. Technically these are valid JPEGs, but support for the format seems to be extremely scant.
hachoir-parser supports detecting CMYK JPEGs by parsing the binary stream. As long as it’s pure python, it should work on App Engine.
You can request official support in the Images API on the App Engine issue tracker.