WPF图像格式和绑定

时间:2010-07-16 21:08:10

标签: wpf image xaml

我有一个项目需要将内存System.Drawing.Bitmap转换为内存中的BitmapImage,这样我就可以通过XAML将BitmapImage绑定到Image控件。我遇到的问题是在转换期间原始位图收缩并且非常模糊。

这非常糟糕,因为原始位图是条形码,我需要这个条形码才能保持可读性。我能做些什么来保持位图的完整性吗?或者是否可以将System.Drawing.Bitmap绑定到WPF图像控件而无需先保存位图并使用URI?

也可以有人向我解释所有这些图像格式之间的区别吗?看起来好像有很多它们,它们存在于众多名称空间中,在它们之间进行转换是很痛苦的。

EDIT .....

public static BitmapImage GetBitmapImage(Bitmap bmp)
    {
        MemoryStream ms = new MemoryStream();
        bmp.Save(ms, ImageFormat.Bmp);

        BitmapImage bmpI = new BitmapImage();
        bmpI.BeginInit();
        bmpI.StreamSource = ms;
        bmpI.EndInit();

        ms.Close();
        ms.Dispose();

        return bmpI;
    }

2 个答案:

答案 0 :(得分:1)

您是否尝试过不同的位图缩放模式?

例如:

Image RenderOptions.BitmapScalingMode =“HighQuality”......

答案 1 :(得分:1)

在我看来,摆脱所有这些负担的最简单方法是创建一个用户控件,然后放一个

  

WindowsFormsHost

对那个控件。之后,您将一个Windows窗体图像放入主机,并在用户控件的底层代码中,您可以创建一个依赖项属性来绑定数据并更新对图像控件的更改。

干杯。