C# 如何使用.NET4中的CMYK颜色空间向图像添加文本
我正在从事一个项目,其核心是向图像中添加文本,例如,给定一个背景图像(B)和一些指定字体的文本,点大小和字体(a),这两个元素组合在一起生成(C): 最终的结果是使用这些图像进行打印,因此背景使用CMYK颜色空间,我需要将整个过程保持在CMYK范围内,否则打印时颜色会出错。(注:优秀) 我尝试了几种不同的方法将这些图像合成在一起:C# 如何使用.NET4中的CMYK颜色空间向图像添加文本,c#,.net,imaging,cmyk,C#,.net,Imaging,Cmyk,我正在从事一个项目,其核心是向图像中添加文本,例如,给定一个背景图像(B)和一些指定字体的文本,点大小和字体(a),这两个元素组合在一起生成(C): 最终的结果是使用这些图像进行打印,因此背景使用CMYK颜色空间,我需要将整个过程保持在CMYK范围内,否则打印时颜色会出错。(注:优秀) 我尝试了几种不同的方法将这些图像合成在一起: 绘图隐式地将所有内容转换为RGB System.Windows.Media.Imaging-无合成方法 System.XAML/WPF-非常有希望,但是Rende
- 绘图隐式地将所有内容转换为RGB
- System.Windows.Media.Imaging-无合成方法
- System.XAML/WPF-非常有希望,但是RenderTargetBitmap在PixelFormats.Cmyk32中不起作用(引发ArgumentException)
- (截至2010年12月,约1800美元)
- (截至2010年12月,约3300美元)
Windows.System.Media.Imaging
能够加载到CMYK的任何格式以下是我使用的代码:
var bitmapConverter = new FormatConvertedBitmap();
bitmapConverter.BeginInit();
bitmapConverter.Source = sourceImage;
bitmapConverter.DestinationFormat = PixelFormats.Cmyk32;
bitmapConverter.EndInit();
为了澄清,上面的代码将图像源转换为CMYK32(无透明度),但是如果您使用某些类(即
RenderTargetBitmap
传递上述图像源将引发异常)。如果您对此进行了大量研究,您可能已经看到了这些链接。但是,以防万一,这里有一些我发现可能对你有帮助的链接
以下是关于在.NET中使用CMYK的链接:
特别提到使用颜色配置文件和
以下是另一个SO链接:
一位回答者提到CMYK和RGB之间没有精确的转换
以下是关于合成两幅CMYK图像而不转换为RGB的链接:
回答者建议使用他所属的商业产品。感谢您发布这些内容,我四处查看并找到了一些使用.NET转换位图格式的资源(在我的问题中为谷歌发布了一个代码示例),对于以CMYK格式保存的源图像而言,这是保证打印图像质量的关键。我已经看过Atlasoft DotImage,“Pro”版本似乎符合我的要求,但价格约为3000美元。请注意,从RGB/CMYK转换为RGB/CMYK是不可逆的-您将丢失一些颜色信息。事实上,正是因为这个原因,我避免了在中间步骤将现有的源图像转换为RGB。我最终使用了PDF(iTextSharp)库在图像上合成文本,因为这保留了字体符号和CMYK图像。字体仍然以RGB格式指定,但是颜色足够简单,不会成为问题。