C#WPF模糊像素

时间:2012-07-05 12:36:28

标签: c# wpf drawing

我必须编写在WPF中设置像素的函数。我需要画一些照片。使用附加代码我有一些模糊的效果(如在屏幕上)。

你能告诉我什么是错的,或者我应该使用哪种方法?

namespace DisplayAppCS {

public partial class MainWindow : Window
{

    WriteableBitmap _bitmap = new WriteableBitmap(100, 200, 1, 1, PixelFormats.Bgr32, null);

    public MainWindow()
    {
        InitializeComponent();
        image1.SnapsToDevicePixels = true;
        image1.Source = _bitmap;

        int[] ColorData = { 0xFFFFFF }; // B G R

        Int32Rect rect = new Int32Rect(
                1,
                60,
                1,
                1);

        _bitmap.WritePixels(rect, ColorData, 4, 0);

    }
}}

pixel blurry effect

2 个答案:

答案 0 :(得分:4)

您的位图是100x200,但您的窗口要大得多。您的图像被拉伸到窗口的大小,从而产生“模糊”效果。您需要更改窗口的大小或告诉图像不要伸展:

<Image Stretch="None"/>

那就是说,你可能会使用可写位图完全走错路径。这实际上取决于您的要求。您是否可以使用内置的WPF形状,例如?

答案 1 :(得分:0)

您可以尝试使用SnapToDevicePixels属性。