Apakah mungkin untuk mengubah kualitas interpolasi gambar di kontrol Gambar WPF?

Kontrol gambar - ditempatkan ke dalam Viewbox. Untuk penskalaan otomatis ketika ukuran jendela berubah. Semuanya bekerja dengan sempurna.

Apakah mungkin mengubah jenis interpolasi dalam kasus saya? Misalnya pilih Bicubic atau Bilinear. Atau untuk penskalaan otomatis pilihan seperti itu tidak tersedia?

BitmapImage bmp=new BitmapImage(new Uri("c:/temp/1.jpg"));
ImageSource pic = bmp;
Viewbox vb = new Viewbox();
vb.Stretch = Stretch.UniformToFill;
vb.StretchDirection = StretchDirection.DownOnly;

Image img=new Image();
img.Source = pic;

vb.Child = img;

person Mixer    schedule 09.02.2013    source sumber


Jawaban (1)


Sejauh yang saya tahu Anda tidak dapat menentukan interpolasi bikubik atau bilinear untuk bitmap di WPF, (defaultnya adalah linier) tetapi Anda dapat mengatur opsi RenderOptions.BitmapScalingMode untuk mendapatkan kontrol yang lebih baik terhadap kualitas tampilan bitmap yang diskalakan. Misalnya:

RenderOptions.BitmapScalingMode="NearestNeighbor" or RenderOptions.BitmapScalingMode="HighQuality"

Terdapat informasi selengkapnya tentang masing-masing mode penskalaan di MSDN http://msdn.microsoft.com/en-us/library/system.windows.media.bitmapscalingmode

Jika Anda masih mengalami masalah dengan grafik buram, coba atur UseLayoutRounding="True" di elemen root Anda. Ini akan menonaktifkan pemosisian elemen sub-piksel yang dapat menyebabkan garis bergerigi pada aplikasi WPF

person Jack    schedule 09.02.2013
comment
Saya membuat Gambar kontrol secara dinamis. dalam kasus saya cocok, inilah metodenya: RenderOptions.SetBitmapScalingMode(img, BitmapScalingMode.Fant); - person Mixer; 09.02.2013