Я работаю с большим количеством данных монохромного изображения, и этим утром я заметил, что существует существенная разница между тем, как libjpeg и .Net jpeg-кодек обрабатывают монохромные данные. Похоже, что монохромное изображение, сохраненное при ЛЮБОМ настройке качества с использованием libjpeg и открытое с использованием стандартного кодека .Net jpeg, фактически загружает только 16 различных оттенков серого, и все промежуточные оттенки отображаются как зачеркнутые.
Вот гистограмма гладкого градиента, сохраненная libjpeg и загруженная .net
Гистограмма должна быть совершенно ровной.
И вот (увеличенный) пример того, как выглядит этот градиент (это должен быть совершенно плавный переход)
Это должен быть плавный переход от серого 85 слева к серому 136 справа, но только 4 оттенка серого фактически сделаны, чтобы сделать этот переход.
Мой вопрос: я сумасшедший, и если не только, насколько далеко это несоответствие кодеков? Хорошее обходное решение, если вы используете обе библиотеки в разных программах?
Я не обвиняю ни один кодек, просто указывая на то, что кажется несоответствием. Я заметил это с изображениями, которые, как я знал, были созданы с использованием libjpeg, предположили, что это проблема с настройкой качества, попробовали с помощью resaster resaster для создания тестовых изображений и получили тот же результат, попытались использовать irfanview и снова получили тот же результат. Поскольку обе эти программы должны использовать некоторую библиотеку jpeg, я склонен предположить, что они также используют libjpeg, и существует подлинный конфликт кодеков.
На стороне загрузки я столкнулся с тем же результатом, загружая изображения как своим собственным .net-кодом, так и используя Paint.net.
Наконец, вот пример с нормальным разрешением, чтобы вы могли скачать его и попробовать сами. Загрузка его в некоторые программы даст вам хороший градиент (например, ваш браузер), но загрузите его с помощью собственного кода .Net или Paint.Net, который даст вам отложенный градиент, как показано выше, используя только 16 оттенков серого.
Кто-нибудь знает об этом больше, насколько он идет и какие хорошие обходные пути могут быть?