Я пишу код для определения цветового пространства изображения JPEG.Я нашел две ссылки, которые могут помочь мне реализовать это.Один находится на oracle.com , другой - на исходном коде C из ijg.com , который "отвечает за эталонную реализацию исходного стандарта JPEG".
Однако они отличаются.Например, в IJG, когда нет маркера Adobe и имеется 4 канала, он принимается за CMYK, но в oracle это YCCA.Также реализация IJG не смотрит на субсэмплинг, тогда как для 4-канального субсэмплирования это - YCCK в спецификациях oracle и т. Д.указать 3 дополнительных цветовых пространства, таких как YCCK, YCCA, RGBA.
Еще один момент заключается в том, что я нашел информацию о том, что JPEG не поддерживает прозрачность в альфа-канале здесь , зачем оракулу говорить о YCCAи RGBA в контексте спецификации метаданных JPEG?
В результате при проверке изображения с помощью логики IJG он говорит мне, что это CMYK (проверено изображение с помощью ImageMagick в Ubuntu, а также говорится, что это CMYK), с оракуломлогика это YCCA.Кому верить?Почему оракул не полагается на оригинальную спецификацию JPEG?Или есть что-то еще, чего я не знаю?