我有一个应用程序c#wpf,我使用Image Bitmap。
我有一个Byte []
,其中包含用于以灰度绘制图像的值(0或255)。
示例:
int heigth = 5;
int width = 5;
Byte[] image = new Byte[]
{ 255, 0, 255, 0, 255,
0, 255, 255, 255, 0,
255, 255, 0, 255, 250,
0, 255, 255, 255, 0,
255, 0, 255, 0, 255};
对应图像
要在我的应用程序中显示此图像,我就这样做了:
XAML:
<Border Style="{StaticResource BorderStyle}">
<Image Source="{Binding BlockPicture, Mode=OneWay,UpdateSourceTrigger=PropertyChanged}" />
</Border>
C#:
private BitmapSource _blockPicture;
public BitmapSource BlockPicture
{
get
{
return _blockPicture;
}
private set
{
_blockPicture = value;
OnPropertyChanged("BlockPicture");
}
}
private BitmapSource LoadImage(int w, int h, byte[] matrix)
{
if (matrix == null || matrix.Length == 0)
return null;
var format = PixelFormats.Gray8;
var stride = (w * format.BitsPerPixel + 7) / 8;
return BitmapSource.Create(w, h, 96, 96, format, null, matrix, stride);
}
BlockPicture = LoadImage(width, heigth , image);
它的工作正常,但是当显示图像时,它非常难看并且分散。
我能做些什么才能让画面干净利落?
答案 0 :(得分:3)
您可以指定BitmapScalingMode
:
<Image RenderOptions.BitmapScalingMode="NearestNeighbor" />