In the JPEGImagePlugin.py module, there's a hack to handle Photoshop 2.5 CMYK JPEG images (around line 273)... that's causing half the problem upon loading JPEG's. By commenting that out, you get a proper image, although it's still inverted.
I can't seem to find the right place to re-invert the image upon load, but I'll see what I can find. Anyone with suggestions would be welcome. There's probably a better way to do this though, so the data is read correctly in the first place (in CMYK, 0,0,0,0 = white, 255,255,255,255 = full black... this is probably the problem). Kevin. ----- Original Message ----- From: <[EMAIL PROTECTED]> To: "Cesare Leonardi" <[EMAIL PROTECTED]>; <image-sig@python.org> Sent: Saturday, April 15, 2006 1:32 PM Subject: Re: [Image-SIG] Problem with JPEG and CMYK color space > Actually, the problem is that PIL also has problems reading CMYK JPEG > files > apparently. I just proved that by loading your CMYK test files and doing > a > "show", then loading a CMYK TIFF file and doing a show (note that to use > show, it converts to RGB with the internal conversion, so the colors won't > be perfect). The TIFF loaded fine, the JPEG didn't. > > The patch I've submitted fixes the problem with saving incorrectly, but > doesn't fix the reading issue (yet). So, as long as your source CMYK > image > doesn't come from a JPEG file it's ok (with my invert patch). > > I'll see if I can spend some time looking at that this weekend. > > Kevin. > ----- Original Message ----- > From: "Cesare Leonardi" <[EMAIL PROTECTED]> > To: <image-sig@python.org> > Sent: Friday, April 14, 2006 9:38 AM > Subject: Re: [Image-SIG] Problem with JPEG and CMYK color space > > >> [EMAIL PROTECTED] ha scritto: >>> When saving a CMYK file to JPG, PIL seems to invert the colors. I've >>> submitted a patch to Fredrik already for this, and it should be in the >>> next major build. >>> >>> Adding a simple invert to the image before saving will help. >> >> Thanks all for your responses. >> >> Kevin, i've made some tests following what you've suggested and here is >> the results. >> To obtain the color inversion i've used the function invert() in >> ImageChops module. I've added the code and the new sample images in this >> page (see "part 2"): >> http://www.bernispa.com/pil/index.html >> >> As you can see your suggestion works partially. >> Images 02 and 03 (that was particular in "part 1") are the only that >> after the inversion looks ok. >> All the other images looks less dark, but the color are always different >> than the original. >> The particular thing to note is that the images produced by the >> inversion looks the same as Image.show(). Seems that show() already do >> the inversion. >> >> There is another thing that i have noted only now: the images saved by >> PIL are often less big than the original. Sometimes much less. For >> example: >> test01: 1435 KB test01-dst: 198 KB test01-dst-invert: 198 KB >> test04: 1237 KB test01-dst: 405 KB test01-dst-invert: 405 KB >> test08: 1647 KB test01-dst: 777 KB test01-dst-invert: 776 KB >> test09: 1715 KB test01-dst: 665 KB test01-dst-invert: 665 KB >> test10: 2032 KB test01-dst: 659 KB test01-dst-invert: 659 KB >> I can think that PIL optimize the compression, but that difference are >> really big. Isn't it suspicious? I expect that saving an image in a new >> file without modifications produces a file very similar to the original, >> isn't it? >> The original images was not produced by me so the author can have used >> low compression. I cannot make tests since i haven't a program that can >> save in CMYK (Gimp seems not able). >> >> Regards. >> >> Cesare. >> _______________________________________________ >> Image-SIG maillist - Image-SIG@python.org >> http://mail.python.org/mailman/listinfo/image-sig >> >> >> > > > _______________________________________________ > Image-SIG maillist - Image-SIG@python.org > http://mail.python.org/mailman/listinfo/image-sig > > > _______________________________________________ Image-SIG maillist - Image-SIG@python.org http://mail.python.org/mailman/listinfo/image-sig