Closed jessicatieman closed 1 week ago
Hi @jessicatieman ,
From what you're writing I understand you're using Adobe's JPEG 2000 plugin, is this correct?
If so: that plugin is notoriously rubbish, and the image files it creates have several faults. First of all, it creates images in the JPX (JPEG 2000 Part 2) format, rather than JP2. This format is poorly supported, with the result that other reading applications will often not be able to e.g. interpret colour space information correctly. This is especially problematic if colour space is defined by an ICC profile. See below link for more details:
Since these are not JP2 files, validation against JP2 will result in several validation errors, amongst which the "approxIsValid" one (which is related to colour space).
Confusingly format id tools identify these files as "JP2", because the "brand" header field doesn't conform to JPX either. More details on this here:
Finally Adobe's implementation also messed up some of the tile-part headers, which can result in incomplete image reads (which can lead to data loss if the images ever need to be migrated to some other format in the future). Details here:
So I would strongly recommend to not use the Photoshop plugin for any production work, but use a dedicated JPEG 2000 encoder such as Kakadu.
If you need more help feel free to drop me a line at johan.vanderknijff@kb.nl.
@stweil Yes I should have mentioned that. Worth mentioning though that last time I checked (this was two years ago) OpenJPEG's support of ICC profiles was limited, and it also doesn't read/write resolution boxes. More info in this 2022 post (which also covers Grok, which looks like a realy good choice these days):
I'm afraid this is still a deficit of OpenJPEG.
I am working with an institution who is converting TIFF images to JPEG2000 using Adobe Photoshop and we are having difficulty determining the root cause for validation errors of the JP2’s using Jpylyzer. Is there a contact OPF that can provide suggestions or insight for issues like this? Thank you