2012-12-18 12 views
8

Sto lavorando a un'app di Windows Phone in grado di leggere le arti degli album in modo dinamico dai file musicali tramite le API di MediaPlayer. Desidero ottenere le arti dell'album e ridimensionarle per lo sfondo della vista. Dal momento che il ridimensionamento perderebbe i dettagli e renderebbe l'immagine brutta, quindi mi piacerebbe sfocarlo o qualche tipo di effetto. C'è qualche API che posso sfocare l'immagine? (sia da C# o XAML)? Molte grazie!WP8: Esiste un modo semplice per ridimensionare e sfocare un'applicazione BitmapImage per Windows Phone?

risposta

10

vorrei iniziare utilizzando WriteableBitmap invece, per ottenere un WriteableBitmap da un BitmapImage è possibile effettuare le seguenti operazioni:

WriteableBitmap wb = new WriteableBitmap(bitmapImage); 

Poi mi consiglia di utilizzare il WriteableBitmapExtension library. Ha il supporto per il ridimensionamento dell'immagine:

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

per fare il gaussian blur con WritableBitmapExtensions effettuare le seguenti operazioni (per qualche motivo concolution non modificare il writableBitmap, in modo da avere assegnare di nuovo per lo stesso writableBitmap per vedere il risultato):

wb = wb.Convolute(WriteableBitmapExtensions.KernelGaussianBlur5x5); 

o

wb = wb.Convolute(WriteableBitmapExtensions.KernelGaussianBlur3x3); 

(soli pesi diversi per i pixel vicini).

+0

Così meraviglioso! Grazie – thsieh

+0

Ciao, è questo il modo giusto di farlo? Sembra non funziona ?? WriteableBitmap wb = new WriteableBitmap (albumArtImage);
WriteableBitmapExtensions.Convolute (wb, WriteableBitmapExtensions.KernelGaussianBlur5x5);
AlbumBackground.ImageSource = wb; thsieh

+0

Per qualche motivo il risultato della convoluzione non viene applicato a wb, ma restituito, quindi è necessario assegnarlo nuovamente a wb, vedere la risposta aggiornata. (L'ho provato con l'emulatore WP7 e ora sembra funzionare.) –

Problemi correlati