Преобразование цветового пространства JPEG (Adobe RGB к sRGB) в Windows (.NET)

Если Вы пишете, что класс - называет его Трассировкой - который реализует интерфейс IDisposable, Вы могли обернуть все тела метода в

Using( Tracing tracing = new Tracing() ){ ... method body ...}

В классе Трассировки, который Вы могли дескриптор логика трассировок в методе конструктора/Располагать, соответственно, в классе Трассировки для отслеживания ввод и выход методов. Таким образом, что:

    public class Traced 
    {
        public void Method1(String name, Int32 value) {
            using(Tracing tracer = new Tracing()) 
            {
                [... method body ...]
            }
        }

        public void Method2(Object object) { 
            using(Tracing tracer = new Tracing())
            {
                [... method body ...]
            }
        }
    }
6
задан Jon Seigel 4 April 2010 в 17:47
поделиться

5 ответов

Справочная информация: файлы Jpg имеют 8 бит красного цвета , зеленый и синий, будь то sRGB, Adobe RGB или обычный RGB. Дескриптор ICC определяет цветовое пространство. Иногда это встраивается в файл jpg. Иногда есть флаг для обозначения sRGB, тег Exif Colorspace a001 = 1. Стандартного флага для Adobe RGB нет, но некоторые приложения и камеры используют 65535 (некалиброванный) для Adobe RGB в теге exif A001.

Для преобразования jpg из одного профиля ICC (цветового пространства) в другой, вы можете использовать CreateColorTransform для создания преобразования между цветовыми пространствами. Вам нужно будет предоставить профиль ICC для исходного (Adobe RGB) и целевого (sRGB) цветовых пространств.

После преобразования используйте TranslateBitmapBits для настройки пикселей. Может быть проще работать с изображением как с DIBSection.

Это может быть немного сложно для записи в .asp, поэтому может быть проще использовать графическую библиотеку, которая делает это.

5
ответ дан 9 December 2019 в 20:47
поделиться

Вам следует использовать параметр ImageMagic -profile , я считаю, что параметр -colorspace вам здесь не поможет.

convert image.jpg -profile sRGB.icc rgb_image.jpg

В качестве альтернативы вы можете поискать маленький цвет механизм управления

2
ответ дан 9 December 2019 в 20:47
поделиться

На стороне сервера вы можете вызвать ImageMagick и позволить ему выполнить преобразование за вас.

Вот ссылка на параметр командной строки -colorspace

Я не использовал этот конкретный вариант, но, похоже, он делает то, что вы хотите.

0
ответ дан 9 December 2019 в 20:47
поделиться

Взгляните на класс ColorConvertedBitmap .

4
ответ дан 9 December 2019 в 20:47
поделиться

Взгляните на Классы преобразования растровых изображений , в которых есть небольшой пример использования класса ColorconvertedBitmap с профилем.

1
ответ дан 9 December 2019 в 20:47
поделиться
Другие вопросы по тегам:

Похожие вопросы: