2016-07-21 6 views
0

저는 응용 프로그램 C# wpf가 있고 이미지 비트 맵을 사용합니다.비트 맵 이미지를 날카롭게 만들기

저는 그레이 스케일로 이미지를 그리는 데 사용 된 값 (0 또는 255)을 가진 Byte []입니다.

예 :

XAML :

<Border Style="{StaticResource BorderStyle}"> 
    <Image Source="{Binding BlockPicture, Mode=OneWay,UpdateSourceTrigger=PropertyChanged}" /> 
</Border> 
,691

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}; 

해당하는 이미지에

Image pattern

내 응용 프로그램에서이 이미지를 표시하려면 그했다

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); 

이 작업 괜찮아요하지만 이미지가 표시 될 때, 그것은 매우 추한 및 확산이다.

Displayed image

나는 좋은 그림이 깨끗하고 날카로운 가지고 무엇을 할 수 있는가?

답변

3

당신은 지정할 수 BitmapScalingMode :

정확히 내가 원하는 무엇
<Image RenderOptions.BitmapScalingMode="NearestNeighbor" /> 
+0

. 고맙습니다 ! –

관련 문제