2012-12-18 25 views
8

Tôi đang làm việc trên một cửa sổ Ứng dụng điện thoại có thể đọc nghệ thuật Album động từ các tệp nhạc thông qua API MediaPlayer. Tôi muốn có được album nghệ thuật và thay đổi kích thước cho nền của xem. Kể từ khi thay đổi kích thước sẽ mất chi tiết và làm cho hình ảnh xấu xí vì vậy tôi muốn làm mờ nó hoặc một số loại hiệu ứng. Có API nào mà tôi có thể làm mờ hình ảnh không? (hoặc từ C# hoặc XAML)? Cảm ơn rất nhiều!WP8: Có cách nào dễ dàng để mở rộng và làm mờ một BitmapImage cho ứng dụng Windows Phone không?

Trả lời

10

tôi sẽ bắt đầu bằng cách sử dụng WriteableBitmap thay vào đó, để có được một WriteableBitmap từ một BitmapImage bạn có thể làm như sau:

WriteableBitmap wb = new WriteableBitmap(bitmapImage); 

Sau đó, tôi sẽ khuyên bạn nên sử dụng WriteableBitmapExtension library. Nó có hỗ trợ cho thay đổi kích thước hình ảnh:

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

Để làm gaussian blur với WritableBitmapExtensions thực hiện như sau (đối với một số lý do concolution không chỉnh sửa writableBitmap, vì vậy bạn phải gán nó một lần nữa để các writableBitmap cùng để xem kết quả):

wb = wb.Convolute(WriteableBitmapExtensions.KernelGaussianBlur5x5); 

hoặc

wb = wb.Convolute(WriteableBitmapExtensions.KernelGaussianBlur3x3); 

(Chỉ cần trọng lượng khác nhau cho các điểm ảnh lân cận).

+0

Rất tuyệt vời! Cảm ơn – thsieh

+0

Xin chào, đây có phải là cách làm đúng không? Có vẻ như không hoạt động? WriteableBitmap wb = new WriteableBitmap (albumArtImage);
WriteableBitmapExtensions.Convolute (wb, WriteableBitmapExtensions.KernelGaussianBlur5x5);
AlbumBackground.ImageSource = wb; thsieh

+0

Đối với một số lý do kết quả của sự chập chững không được áp dụng cho wb, nhưng trả lại thay vào đó, vì vậy bạn cần gán nó cho wb một lần nữa, xem câu trả lời được cập nhật. (Tôi đã thử nó trong giả lập WP7 và nó có vẻ làm việc ngay bây giờ.) –