"重复"问题解释了如何将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
并再次尝试颜色保持不变。
我可以在CMYK
中检测到C#
,但我不知道如何更改newImage
对象以保持颜色正确。
我尝试将newImage
的调色板设置为image
的调色板,但这会引发invalid parameter
异常。我还尝试使用new Bitmap(image, new Size(width, height));
直接从原始位图创建位图,但这不会改变任何内容。
我还尝试使用Graphics gr
直接从原始图片加载Graphics gr = Graphics.FromImage(image)
,但这会引发Out of memory
例外。
示例图像比原始图像小,但您仍然可以看到质量差异。
如何在没有质量损失的情况下将cY中的CMYK更改为RGB?