2011-06-04 6 views
18

आसपास सफेद फ्रेम की ओर जाता है मैं तो जैसे WPF में एक छवि के लिए एक कलंक प्रभाव लागू कर रहा हूँ:गाऊसी कलंक छवि

<Image ClipToBounds="True"> 
    <Image.Effect> 
     <BlurEffect Radius="100" KernelType="Gaussian" RenderingBias="Performance" /> 
    </Image.Effect> 
</Image> 

आप देख सकते हैं, त्रिज्या, बड़ी है, क्योंकि छवि बड़ी है और मैं इसे वास्तव में धुंधला होने की आवश्यकता है। हालांकि, एक त्रिज्या के लिए जो बड़ी छवि में देखा गया है, मुझे अपनी छवि के चारों ओर एक हल्का फ्रेम मिल रहा है। मैं इसे कैसे दबा सकता हूं?

यदि आप सोच रहे हैं: परिणाम RenderingBias से कोई फर्क नहीं पड़ता। गुणवत्ता-मोड में एक सीमा भी बनाई जाती है।

White border around image

उत्तर

10

क्या हो रहा है ClipToBounds के साथ मिलकर एक कलंक का परिणाम है। चूंकि आप गॉसियन ब्लर का उपयोग कर रहे हैं, किनारों को प्राकृतिक रूप से पृष्ठभूमि (सफेद) में मिश्रण करने जा रहे हैं।

क्लिपटॉबाउंड्स को लागू करना मूल रूप से कटौती करता है जहां यह अन्यथा सफेद रंग में मिश्रण होता है, इसलिए आपको सफेद फ्रेम क्यों मिलता है।

जब तक कि आप छवि को और भी क्लिप करने के इच्छुक नहीं हैं, दुर्भाग्यवश यह ब्लूर्स कैसे काम करता है।

Screenshot of cliptobounds

+0

यही मैंने सोचा - तो: क्या छवि को धुंधला करने का कोई और तरीका है ताकि यह उस तरह फीका न हो? उदाहरण के लिए: जब मैं 100 के त्रिज्या का उपयोग कर छवि में गॉसियन ब्लर फ़िल्टर लागू करने के लिए पेंट.नेट का उपयोग करता हूं, तो मुझे वह सीमा दिखाई नहीं देती है। –

+0

डब्ल्यूपीएफ केवल गॉसियन ब्लर और बॉक्स ब्लर का समर्थन करता है (जो बदतर है)। एकमात्र कामकाज यह है कि यदि आप क्लिपटॉबाउंड को हटाते हैं, क्योंकि इससे अधिक स्वाभाविक रूप से दिखना चाहिए। – LongZheng

+0

एचएम। क्या मैं कोड में कुछ भी कर सकता हूं? मैं क्या करना चाहता हूं: स्रोत छवि ले लो, एक धुंधला संस्करण बनाया और एक अस्पष्टता मुखौटा का उपयोग करके उन्हें एक साथ मिलाएं। –

3

धुंधला करने से पहले, आप पैड छवि सीमा से पिक्सल का उपयोग कर छवि कर सकते हैं। ऐसा करने से आप आश्वस्त कर सकते हैं कि सीमा के चारों ओर धुंधले पिक्सल समान रंग के पिक्सल का उपयोग करके धुंधला हो जाएंगे और सफ़ेद सीमा समाप्त हो जाएगी। बेशक, छवि को अपने मूल आकार में फिसलने के बाद।

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