2012-12-18 14 views
8

मैं एक विंडोज फोन ऐप पर काम कर रहा हूं जो मीडियाप्लेयर एपीआई के माध्यम से संगीत फ़ाइलों से गतिशील रूप से एल्बम कला पढ़ सकता है। मैं एल्बम की कला प्राप्त करना चाहता हूं और दृश्य की पृष्ठभूमि के लिए आकार बदलना चाहता हूं। चूंकि आकार बदलना होगा और छवि बदसूरत कर देगा इसलिए मैं इसे या किसी प्रकार का प्रभाव धुंधला करना चाहता हूं। क्या कोई एपीआई है जिसे मैं छवि को धुंधला कर सकता हूं? (या तो सी # या एक्सएएमएल से)? आपका बहुत बहुत धन्यवाद!WP8: क्या विंडोज फोन ऐप के लिए बिटमैप इमेज को स्केल और ब्लर करने का कोई आसान तरीका है?

उत्तर

10

मैं बजाय WriteableBitmap का उपयोग कर, एक BitmapImage आप निम्न कर सकते से एक WriteableBitmap प्राप्त करने के लिए से शुरू होगा:

WriteableBitmap wb = new WriteableBitmap(bitmapImage); 

तब मैं WriteableBitmapExtension library का उपयोग कर की सिफारिश करेंगे। यह छवि का आकार बदलने के लिए समर्थन हासिल है:

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

ऐसा करने के लिए WritableBitmapExtensions निम्नलिखित (के लिए किसी कारण concolution ही writableBitmap के लिए फिर से writableBitmap संपादित नहीं करता है, तो आप इसे आवंटित करने के लिए देखने के लिए करते हैं के साथ gaussian blur परिणाम):

wb = wb.Convolute(WriteableBitmapExtensions.KernelGaussianBlur5x5); 

या

wb = wb.Convolute(WriteableBitmapExtensions.KernelGaussianBlur3x3); 

(बस पड़ोसी पिक्सल के लिए अलग अलग वजन)।

+0

बहुत बढ़िया! धन्यवाद – thsieh

+0

हाय, यह करने का यह सही तरीका है? ऐसा लगता है कि काम नहीं कर रहा है ?? WriteableBitmap wb = नया लिखित योग्य बिटमैप (एल्बम आर्ट इमेज);
लिखने योग्य बिटमैप एक्सटेंशन। कॉनवॉल्यूट (wb, WriteableBitmapExtensions.KernelGaussianBlur5x5);
एल्बमबैकग्राउंड। इमेजसोर्स = डब्ल्यूबी; thsieh

+0

कुछ कारणों से रूपांतरण का परिणाम wb पर लागू नहीं होता है, लेकिन इसके बदले में लौटाया जाता है, इसलिए आपको इसे फिर से wb करने के लिए असाइन करने की आवश्यकता है, अद्यतन उत्तर देखें। (मैंने इसे WP7 एमुलेटर में आजमाया और ऐसा लगता है कि अब काम कर रहा है।) –

संबंधित मुद्दे

 संबंधित मुद्दे