2012-12-18 26 views
8

Pencerelerde çalışıyorum Müzik dosyalarını MediaPlayer API'leri aracılığıyla Müzik dosyalarından dinamik olarak okuyabilen Telefon uygulaması. Albüm sanatları almak ve görünümün arka planı için yeniden boyutlandırmak istiyorum. Yeniden boyutlandırma ayrıntılarını kaybedeceğinden ve görüntüyü çirkin hale getireceğinden, bulanıklaştırmak veya bir çeşit etki yapmak istiyorum. Resmi bulanıklaştırabilecek herhangi bir API var mı? (C# veya XAML'den)? Çok teşekkürler!WP8: Windows telefon uygulaması için bir BitmapImage ölçeklendirmek ve bulanıklaştırmak için kolay bir yol var mı?

cevap

10

ben aşağıdakileri yapabilirsiniz bir BitmapImage bir WriteableBitmap almak yerine WriteableBitmap kullanarak başlayacaktı:

WriteableBitmap wb = new WriteableBitmap(bitmapImage); 

Sonra WriteableBitmapExtension library kullanarak öneriyoruz. Bu resim boyutlandırma desteği vardır:

wb.Resize(newWidth, newHeight, WriteableBitmapExtensions.Interpolation.Bilinear); 

yapmak için atamak zorunda nedense concolution aynı writableBitmap için tekrar writableBitmap düzenleme vermez aşağıdaki (görmek do WritableBitmapExtensions ile gaussian blur sonuç): komşu pikseller için

wb = wb.Convolute(WriteableBitmapExtensions.KernelGaussianBlur5x5); 

veya

wb = wb.Convolute(WriteableBitmapExtensions.KernelGaussianBlur3x3); 

(Sadece farklı ağırlıklar).

+0

Çok güzel! Teşekkürler – thsieh

+0

Merhaba, bu doğru yolu nedir? Çalışmıyor gibi görünüyor? WriteableBitmap wb = yeni WriteableBitmap (albumArtImage);
WriteableBitmapExtensions.Convolute (wb, WriteableBitmapExtensions.KernelGaussianBlur5x5);
AlbumBackground.ImageSource = wb; thsieh

+0

Herhangi bir nedenle, evrişimin sonucu wb'ye uygulanmadı, ancak bunun yerine geri döndü, böylece tekrar wb'ye atamanız gerekiyor, güncellenmiş yanıtı görün. (WP7 emülatöründe denedim ve şimdi çalışıyor gibi görünüyor.) –