在C#中使用Bitmap.ConvertFormat(PixelFormat从24位到16位RGB555,带有抖动)

时间:2014-01-10 06:32:05

标签: c# bitmap pixelformat

任何简单的方法?我试图通过抖动将PixelFormat从24位图像转换为16位RGB555(对于便携式设备)。我已经测试了很多方法:

他们都工作不好。 http://msdn.microsoft.com/en-us/library/windows/desktop/ms536306(v=vs.85).aspx

我找到了一个GDI +包装器,但缺少此功能。

谢谢!

1 个答案:

答案 0 :(得分:0)

您可以使用构造函数中的Bitmap类转换图像,传递转换格式的参数,它将使用您提到的PixelFormat渲染图像。

一些代码:

    public static Bitmap ConvertTo16bpp(Image img) {
    //you can also use Image.FromFile(fileName);//fileName can be absolute path of the image.
    var bmp = new Bitmap(img.Width, img.Height,System.Drawing.Imaging.PixelFormat.Format16bppRgb555);
    using (var gr = Graphics.FromImage(bmp))
    gr.DrawImage(img, new Rectangle(0, 0, img.Width, img.Height));
    return bmp;
   }

建议

如果您有一些简单的要求,您可能不需要AForge.NET(一个出色的图像处理库),您可以选择一个简单的解决方案,但这是您的决定。

链接