带有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?
