我的一个项目,在它的核心包括添加文字到图像,加工,从而给出一个背景图像(B)的例子,在一些文字指定的字体,点大小和字体(A)在两个合成在一起以产生(C): 如何添加文本与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)。
我已经看过,但没试过第三方商业组件价格似乎开始高,继续往上走:
- Graphics Mill(截至〜US $ 1800年12/2010)
- Atalasoft DotImage (〜2010年12月为3300美元)
这是可能的.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将抛出异常)。
感谢您发布这些内容,我环顾四周,发现了一些使用.NET转换位图格式的资源(在Google的问题中发布了一个代码示例),它是打印源图像质量的关键保持CMYK格式。 – 2010-12-14 09:24:05
我看了一下Atlasoft DotImage,“Pro”版本似乎做我想做的事情,但它的成本大约是3000美元。 – 2010-12-14 09:37:41
请注意,从RGB/CMYK转换为不可逆 - 您将失去一些颜色信息。 – 2010-12-14 09:52:04