带有CMYK的新位图图像
“重复”问题说明如何将RGB更改为CMYK以获取单个值。 我需要更改一个Image
对象,并且不能逐个像素地对其进行转换,因为您需要一个Bitmap
对象。 如果我将Image
对象更改为Bitmap
它已经被转换,但质量很差。
我一直使用相同的调整大小方法的JPG图像的年龄,但今天我注意到,一些图像质量非常差。
var newImage = new Bitmap(width, height);
using (Graphics gr = Graphics.FromImage(newImage))
{
gr.SmoothingMode = SmoothingMode.HighQuality;
gr.InterpolationMode = InterpolationMode.HighQualityBicubic;
gr.PixelOffsetMode = PixelOffsetMode.HighQuality;
gr.DrawImage(image, new Rectangle(0, 0, width, height));
}
//return image;
return newImage;
请记住,我现在没有调整任何内容。 如果我return image
的质量是像原来的,如果我return newImage
颜色非常无趣。
当您在Photoshop中打开“坏”图像时,图像具有CMYK
模式。 如果我在Photoshop中将其更改为RGB
并再次尝试,颜色保持不变。
我可以检测C#
的CMYK
,但我不知道如何改变newImage
对象以保持颜色正确。
我试图将newImage
的调色板设置为image
的调色板,但是这会引发invalid parameter
异常。 我也尝试直接从原始位图创建位new Bitmap(image, new Size(width, height));
但这并没有改变任何东西。
我也尝试用Graphics gr = Graphics.FromImage(image)
直接从原始图像加载Graphics gr
,但是这会引发Out of memory
异常。
示例图像比原始图像小,但仍然可以看到质量差异。
如何在c#中将CMYK更改为RGB而没有质量损失?
链接地址: http://www.djcxy.com/p/50293.html上一篇: new Bitmap image with CMYK
下一篇: .NET test for bitonal TIFF image without trapping exception?