2010-12-13 52 views
3

我的一个项目,在它的核心包括添加文字到图像,加工,从而给出一个背景图像(B)的例子,在一些文字指定的字体,点大小和字体(A)在两个合成在一起以产生(C): Example Image如何添加文本与CMYK ColorSpace的图像在.NET 4

最终的结果是去与这些图像来打印,所以背景正在使用的CMYK颜色空间和我需要将整个过程保留在CMYK内或打印时颜色看起来不对。 (注:优秀article on Color Spaces and .NET on CodeProject

我曾尝试合成这些图像一起几种不同的方式:

  • System.Drawing中的一切隐含转换成RGB
  • System.Windows.Media.Imaging - 无合成方法
  • System.XAML/WPF - 非常有希望但RenderTargetBitmap不PixelFormats.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将抛出异常)。

回答

1

如果你已经看过太多的SO,你可能已经看到了这些链接。但为了以防万一,以下是我发现的一些链接,可能对您有所帮助。

这里是从这里SO有关.NET中使用CMYK工作的链接:

Convert RGB color to CMYK?

具体来说它提到使用颜色配置文件和Windows Color Management APIs.

这里是另外一个SO链接:

How to convert CMYK to RGB programmatically in indesign

一位回答者提到,没有一个EXA在CMYK和RGB之间进行ct转换。

这是一个关于合成2个CMYK图像,无须转换为RGB链接:

The are any CMYK graphics library?

回答者建议使用他隶属于一个商业产品。

+0

感谢您发布这些内容,我环顾四周,发现了一些使用.NET转换位图格式的资源(在Google的问题中发布了一个代码示例),它是打印源图像质量的关键保持CMYK格式。 – 2010-12-14 09:24:05

+0

我看了一下Atlasoft DotImage,“Pro”版本似乎做我想做的事情,但它的成本大约是3000美元。 – 2010-12-14 09:37:41

+0

请注意,从RGB/CMYK转换为不可逆 - 您将失去一些颜色信息。 – 2010-12-14 09:52:04