将GDI + PixelFormat转换为WPF PixelFormat

时间:2011-02-24 15:12:10

标签: wpf gdi+

2 个答案:

答案 0 :(得分:8)

这是转换的方式,所以让我们从这里开始,看看是否有人可以超越这个可怕的装置。它们很好地映射到彼此,因此编写开关盒应该相当容易。

private static System.Windows.Media.PixelFormat ConvertPixelFormat(System.Drawing.Imaging.PixelFormat sourceFormat)
{
    switch (sourceFormat)
    {
        case System.Drawing.Imaging.PixelFormat.Format24bppRgb:
            return PixelFormats.Bgr24;

        case System.Drawing.Imaging.PixelFormat.Format32bppArgb:
            return PixelFormats.Bgra32;

        case System.Drawing.Imaging.PixelFormat.Format32bppRgb:
            return PixelFormats.Bgr32;

        // .. as many as you need...
    }
    return new System.Windows.Media.PixelFormat();
}

答案 1 :(得分:-3)

主题已经很老了,但这就是我在假设两个枚举都具有所有相同的String值的情况下解决这个问题的方法。

private static System.Windows.Media.PixelFormat ConvertPixelFormat (System.Drawing.Imaging.PixelFormat sourceFormat) { System.Windows.Media.PixelFormat pixelFormat = (System.Windows.Media.PixelFormat) Enum.Parse(typeof(System.Windows.Media.PixelFormat), sourceFormat.ToString());
return pixelFormat; }