Что может повлиять на качество JPEG при кадрировании на разных машинах?

Я использую стороннюю библиотеку (ImageResizing.net), чтобы обрезать изображение, но на определенной системе (сервер 2008) оно выходит с красным оттенком.

C# ниже использует ImageResizer.net 3.4.2 через nuget.

    private static void ApplyCrop(string sourceDir)
    {
        var sourceImagePath = System.IO.Path.Combine(sourceDir, "before.jpg");
        var outputImagePath = System.IO.Path.Combine(sourceDir, "after.jpg");

        var cropSettings = new ResizeSettings();
        cropSettings.CropTopLeft = new System.Drawing.PointF(0,0);
        cropSettings.CropBottomRight = new System.Drawing.PointF(1003,990);
        cropSettings.Width = 1000;
        cropSettings.Height = 1200;
        cropSettings.Quality = 100;

        if (System.IO.File.Exists(outputImagePath))
            System.IO.File.Delete(outputImagePath);
        ImageBuilder.Current.Build(sourceImagePath, outputImagePath, cropSettings);
    }

Я установил качество jpeg на 100, которое должно быть с нулевым сжатием. Вы можете увидеть разницу в тонированное изображение

Я действительно не думаю, что это проблема со сторонней библиотекой, а с кодеками изображений, используемыми на сервере. Как мне узнать, какая DLL используется, и есть ли рекомендуемые, безопасные (без спама, рекламного и т. Д.) Кодеки?

1 ответ

Это может быть даже не кодек - это может быть просто профиль монитора, используемый машиной. Попробуйте установить его обратно в sRGB и посмотреть, исчезнет ли он.

GDI + не дает вам большого контроля над профилями ICC - единственная доступная настройка - игнорировать включенный профиль ICC изображения (ignoreicc=true в ImageResizer) - но это может не помочь, если ваш профиль дисплея вызывает проблему.

Кроме того, ни один из других (не по умолчанию) конвейеров не должен быть затронут (freeimage, wic).

Обновить - после получения оригинального файла

Изображение представляет собой JPEG-файл CMYK только для Photoshop с использованием цветового профиля Adobe "US Web Coated (SWOP) v2". GDI+ не может отрегулировать это по цвету, но наш конвейер FreeImage должен быть в состоянии, если вы загрузите последние нативные dll с http://freeimage.sourceforge.net/download.html В тех, которые в настоящее время включены в состав ImageResizer, используются оптимизации скорости, которые исключают точный перевод профиля CMYK ICC.

Другие вопросы по тегам