Как добавить текст к изображениям с помощью цветового пространства CMYK в .NET 4

StackOverflow https://stackoverflow.com/questions/4431542

  •  09-10-2019
  •  | 
  •  

Вопрос

Я работаю над проектом, который по своей сути включает добавление текста к изображению, поэтому в качестве примера приведено фоновое изображение (B) и некоторый текст указанным шрифтом, размером точки и шрифтом (A), которые объединяются вместе для получения (C):Example Image

Конечным результатом является переход к печати с этими изображениями, поэтому для фона используется цветовое пространство CMYK, и мне нужно сохранить весь процесс в рамках CMYK, иначе цвета при печати будут выглядеть неправильно.(примечание: превосходно статья о цветовых пространствах и .NET в CodeProject)

Я попробовал несколько различных способов скомпоновать эти изображения вместе:

  • Система.Рисование неявно преобразует все в RGB
  • Система.Windows.Медиафайлы.Визуализация - без методов компоновки
  • System.XAML/WPF - очень многообещающий, однако RenderTargetBitmap не работает в пиксельных форматах.Cmyk32 (выдает исключение ArgumentException).

Я рассматривал, но не пробовал сторонние коммерческие компоненты, поскольку цены, похоже, начинаются с высоких и продолжают расти:

Возможно ли это в .NET 4?

Редактировать: Потому что кто-то другой может захотеть сделать что-то немного другое и просто преобразовать любой формат, который Windows.System.Media.Imaging способен загружаться в CMYK вот код, который я использовал:

var bitmapConverter = new FormatConvertedBitmap();
bitmapConverter.BeginInit();
bitmapConverter.Source = sourceImage;
bitmapConverter.DestinationFormat = PixelFormats.Cmyk32;
bitmapConverter.EndInit();

Чтобы пояснить, приведенный выше код преобразует исходный код изображения в CMYK32 (без прозрачности), однако, если вы используете определенные классы (а именно RenderTargetBitmap передача вышеупомянутого ImageSource вызовет исключение).

Это было полезно?

Решение

Если вы много читали на SO, то, вероятно, уже видели эти ссылки.Но, на всякий случай, вот несколько ссылок, которые я нашел и которые могут быть вам полезны.

Вот ссылка отсюда на SO о работе с CMYK в .NET:

Преобразовать цвет RGB в CMYK?

В частности, в нем упоминается использование Цветовых профилей и API-интерфейсы управления цветом Windows.

Вот еще одна ссылка SO:

Как программно преобразовать CMYK в RGB в indesign

Один из ответчиков упоминает, что между CMYK и RGB нет точного преобразования.

Вот ссылка о скомпоновании двух изображений CMYK без преобразования в RGB:

Есть какая-нибудь графическая библиотека CMYK?

Ответчик предлагает использовать коммерческий продукт, с которым он связан.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top