我正在研究一个项目,该项目涉及将文本添加到图像中,因此作为一个给定背景图像(b)的示例,以及指定字体,点大小和字体(a)中的一些文本(a),两者合成以生成(C):Example Image

最终的结果是使用这些图像打印,因此背景使用CMYK颜色空间,我需要将整个过程保留在CMYK中,或者打印时颜色看起来不错。 ((笔记: 出色的 关于颜色空间和.NET的文章)

我尝试了几种将这些图像合成的不同方法:

  • System.Drawing隐式将所有内容转换为RGB
  • system.windows.media.imaging-无合成方法
  • System.XAML/WPF-非常有前途的RenderTargetBitMap在PixelFormats.cmyk32中不起作用(抛出一个参数exception)。

我已经看过但没有尝试过第三方商业组件,因为价格似乎开始高并继续上涨:

这可能在.NET 4中吗?

编辑:因为别人可能想做一些稍有不同的事情,只需转换任何格式 Windows.System.Media.Imaging 能够加载到CMYK这是我使用的代码:

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

要澄清上述代码将图像源转换为cmyk32(无透明度),但是如果您使用某些类(即 RenderTargetBitmap 通过上述图像资源将引发例外)。

有帮助吗?

解决方案

如果您对此有很多看法,那么您可能已经看到了这些链接。但是,以防万一,我发现一些链接可能对您有所帮助。

这是有关与CMYK在.NET中合作的链接:

将RGB颜色转换为CMYK?

特别是它使用颜色配置文件和 Windows颜色管理API。

这是另一个链接:

如何在Indesign中以编程方式将CMYK转换为RGB

一个答案者提到CMYK和RGB之间没有确切的转换。

这是关于合成两个CMYK图像的链接,而无需转换为RGB:

有任何CMYK图形库吗?

答案者建议使用与他相关的商业产品。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top