CMYK的新位图图像

时间:2016-12-05 13:58:36

标签: c# graphics bitmap rgb 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并再次尝试颜色保持不变。

我可以在CMYK中检测到C#,但我不知道如何更改newImage对象以保持颜色正确。

我尝试将newImage的调色板设置为image的调色板,但这会引发invalid parameter异常。我还尝试使用new Bitmap(image, new Size(width, height));直接从原始位图创建位图,但这不会改变任何内容。

我还尝试使用Graphics gr直接从原始图片加载Graphics gr = Graphics.FromImage(image),但这会引发Out of memory例外。

示例图像比原始图像小,但您仍然可以看到质量差异。

CMYK RGB

如何在没有质量损失的情况下将cY中的CMYK更改为RGB?

0 个答案:

没有答案