फ़िल्टर पैरामीटर CreateScaledBitmap को क्या करता है?


210

की घोषणा android.graphics.Bitmap.createScaledBitmapहै

public static Bitmap createScaledBitmap
  (Bitmap src, int dstWidth, int dstHeight, boolean filter)

हालाँकि, दस्तावेज़ीकरण किसी भी पैरामीटर की व्याख्या नहीं करता है। उन सभी को छोड़कर बहुत स्पष्ट हैं boolean filter। क्या किसी को पता है कि यह क्या करता है?

जवाबों:


86

SKIA स्रोत-कोड के माध्यम से एक त्वरित खुदाई इंगित करती है कि (कम से कम डिफ़ॉल्ट रूप से) फ़्लैटर ध्वज एक सीधा बिलिनियर प्रक्षेप करने का कारण बनता है। विकिपीडिया या अपने पसंदीदा ग्राफिक्स संदर्भ देखें कि अपेक्षित परिणाम क्या हैं। परंपरागत रूप से, आप छवियों को अपकमिंग करते समय बिलिनियर या बाइबिक इंटरपोल करना चाहते हैं, और छवियों को डाउन करते समय औसत क्षेत्र। मुझे यह आभास मिलता है (हालांकि मुझे खुशी है कि इसे ठीक किया जा रहा है) जो कि एंड्रॉइड / स्किआ बिना फ़िल्टरिंग के डाउनसाइज़ करते समय सरल सबमप्लिमेंटिंग करता है, इसलिए आपके डाउन होने पर भी फ़िल्टरिंग से बेहतर परिणाम प्राप्त होने की संभावना है। (प्रक्षेप के साथ उच्च गुणवत्ता प्राप्त करने के लिए एक वैकल्पिक विधि है, जिसमें 50% स्केल रिडक्शन की एक श्रृंखला शामिल है। http://today.java.net/pub/a/today/2007/04/03/perils-of- देखें) छवि getscaledinstance.html ब्योरा हेतु।)


5
यदि आप इसे झूठ मानते हैं तो यह क्या करता है? निकटतम पड़ोसी?
क्लेह

इसके अलावा, क्या आप जानते हैं कि यदि आप फिल्टर पास करते हैं तो यह औसत क्षेत्र है?
क्लोहे

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

253

करण के उत्तर पर विस्तार करने के लिए: एक सामान्य नियम के रूप में आपको अपनी छवि को नीचे गिराते हुए कोई अंतर नहीं दिखेगा , लेकिन यदि आप इसे बढ़ा रहे हैं, तो आप करेंगे ।

पासिंग filter = falseएक रुकावट, Pixellated छवि का परिणाम देगा।

पासिंग filter = trueसे आपको स्मूथ किनारों मिलेगा।

हालाँकि, जैसा कि EIYeante ने टिप्पणियों में बताया, आपको अभी भी अंतर दिखाई दे रहा है। यह उनकी उदाहरण छवि है।


6
@ मिर्को - नाह, यह ठीक है: यह मुझे किसी भी मिनट पॉपुलिस्ट बैज अर्जित करना चाहिए। :)
तैडीय

@ElYeante - क्या आपके पास एक उदाहरण है? कुछ इनपुट और आउटपुट चित्र बहुत अच्छे होंगे। धन्यवाद।
तैदेय

8
@teedyay इस उदाहरण को देखें: dl.dropboxusercontent.com/u/18446310/… मूल चित्र का रिज़ॉल्यूशन 1232x2048 है। मैं इस कोड के साथ एक भारी डोनस्कॉकिंग बना रहा हूं: bm = MediaStore.Images.Media.getBitmap(this.getContentResolver(), intent.getData()); resizedBitmap = Bitmap.createScaledBitmap(bm, 150, 150, true); resizedBitmap.compress(Bitmap.CompressFormat.JPEG, 95, out);मैं सिर्फ फ़िल्टर पैरामीटर बदल रहा हूं।
एलियनट

2
यह ध्वज भ्रामक है। एंटी-एलियासिंग को रोकने के लिए हम पुन: नमूनाकरण से पहले चौरसाई के साथ कैसे नीचे गिरा सकते हैं?
सैम

1
लिंक ने @teedyay
सागर

2

फ़िल्टर चित्रकला के लिए FILTER_BITMAP_FLAG सेट करेगा जो बिटमैप्स के नमूने को प्रभावित करता है जब वे आपके द्वारा प्रदान किए गए मूल्य के आधार पर रूपांतरित होते हैं।


2
बिटमैप के नमूने पर इसका क्या प्रभाव पड़ता है?
सुबह 10:51

मुझे बिटमैप नमूनाकरण के बारे में अधिक जानकारी नहीं है, आप विवरण के लिए निम्न विकी पृष्ठ देख सकते हैं। en.wikipedia.org/wiki/Resampling_%28bitmap%29
करण

"बिटमैप्स के नमूने को प्रभावित करता है" क्या वास्तव में? क्या यह अच्छा प्रभाव है या बुरा?
विलियम डेनिस

@Willian Denniss: उपरोक्त टिप्पणी की जाँच करें। मुझे इसकी जानकारी नहीं है और मैंने अभी तक इसकी कोशिश नहीं की है।
करण

0

पार्टी के लिए थोड़ा देर हो गई, लेकिन मुझे लगा कि कुछ नमूना चित्र इस मुद्दे को स्पष्ट कर सकते हैं।

Android का API यह निर्दिष्ट नहीं करता है कि किस प्रकार का फ़िल्टर लागू किया जाएगा, इसलिए मुझे लगता है कि प्रश्न यह है: क्या आप चाहते हैं कि आपके पिक्सेल वैसे ही बने रहें (जैसा कि आप 8-बिट कला में चाहते हैं) या परिवर्तन लागू करना ठीक है छवि को और अधिक स्वादिष्ट बनाएं (जैसा कि आप तस्वीरों में चाहते हैं)।

सुपरसुसर पर फ़िल्टर करना है या नहीं, इस बारे में अधिक सामान्य प्रश्न है ।

जेफ एटवुड कहते हैं:

सामान्य तौर पर आप किसी छोटी छवि को बड़े आकार में बनाते समय एक हल्का धारदार प्रभाव चाहते हैं, और छोटी छवि को बड़े स्तर पर बनाते समय हल्का धुंधला प्रभाव।

तुलना में छवि फिल्टर

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.