Назначьте цветовой профиль ICC для изображения в C # - PullRequest
6 голосов
/ 17 февраля 2012

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

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

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

1 Ответ

7 голосов
/ 24 февраля 2012

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

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

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

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

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

Опции профиля командной строки Image Magick

Image Magick .NET Wrapper

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

...