У меня есть приложение 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);
Это отлично работает, но когда изображение отображается, это очень некрасиво и диффузный.
Что я могу сделать, чтобы иметь хорошую картину чистые и острой?
Это именно то, что я хочу. Спасибо ! –