Назначение цветового профиля ICC изображению в C#

Вкратце: я хочу назначить цветовой профиль ICC изображению, а не применять его.

Дополнительная информация: В моей компании нам нужно объединить многослойный файл PDF в один слой. Для этого мы объединяем страницу PDF в изображение, а затем сохраняем изображение в формате PDF. Но в процессе создания изображения цветовой профиль изображения теряется. Если мы применим цветовой профиль в C#, профиль преобразуется из Device RGB (вывод .NET по умолчанию) в профиль sRGB_IEC61966-2-1_no_black_scaling.icc. При трансформации некоторые цвета меняются. Вместо применения цветового профиля нам нужно его назначить. Это означает, что цвета не трансформируются.

Кто-нибудь знает, как этого добиться? Заранее спасибо.


person SynerCoder    schedule 17.02.2012    source источник


Ответы (1)


Прежде чем приступить к работе с растровым изображением (т. е. перед началом компоновки отдельных компонентов PDF), убедитесь, что к растровому изображению применен ваш целевой профиль ICC. Вы говорите, что в ваши отдельные изображения встроен необходимый профиль, который теряется при преобразовании. Чтобы сохранить профиль, убедитесь, что вы используете следующий метод загрузки, учитывающий любую информацию цветового профиля:

http://msdn.microsoft.com/en-us/library/4sahykhd.aspx

Вы можете использовать это первое растровое изображение в качестве цели для своей композиции, а затем экспортировать его позже. Он должен сохранить исходный профиль ICC.

Кроме того, вы можете использовать библиотеки FreeImage или ImageMagick для явного управления цветовыми профилями. Оба они имеют оболочки .NET и позволяют удалять/применять файлы профиля ICC:

Бесплатная библиотека изображений

Параметры профиля командной строки Image Magick

Оболочка Image Magick .NET

Надеюсь, это поможет.

person Dave R.    schedule 24.02.2012
comment
Я использую Aspose.Pdf.Kit для преобразования страницы PDF в System.Windows.Image, и эта функция не предлагает возможность сохранить цветовой профиль. Но я в настоящее время изучаю библиотеки, которые вы предложили. - person SynerCoder; 24.02.2012
comment
Это (бесплатная библиотека изображений) решило проблему, которую я задал, но теперь у меня есть другая, я награжу награду через 17 часов. - person SynerCoder; 24.02.2012
comment
@SynerCoder — здорово, что библиотека помогла. Я по-прежнему намереваюсь сделать с ним больше, так как он кажется очень гибким. Извините, но вы столкнулись с новой проблемой :( - person Dave R.; 24.02.2012