मैं एंड्रॉइड में कुछ छवि प्रसंस्करण करने की कोशिश कर रहा हूं। मुझे बिटमैप की पिक्सेल जानकारी का एक हिस्सा प्राप्त करने की आवश्यकता है। इसलिए मैंने बिटमैप क्लास विधि getPixels() में से किसी एक का उपयोग करने का प्रयास किया। हालांकि, ऐसा लगता है कि मैं इसे सही तरीके से उपयोग नहीं कर रहा हूं या मैंने विधि के व्यवहार के एकमात्र उद्देश्य को गलत समझा।एंड्रॉइड के बिटमैप क्लास के getPixels() का उपयोग और इसका उपयोग कैसे करें
उदाहरण के लिए, मैं एक मनमानी स्थान (बिटमैप समन्वय) x, y से बिटमैप के 10 से 10 क्षेत्र की पिक्सेल जानकारी प्राप्त करने के लिए निम्न कार्य कर रहा हूं।
Bitmap bitmap = BitmapFactory.decodeFile(filePath);
int[] pixels = new int[100];
bitmap.getPixels(pixels, 0, bitmap.getWidth(), x, y, 10, 10);
और मुझे ArrayIndexOutOfBoundsException मिल रहा है। मैं यह देखने के लिए चारों ओर गुगल रहा हूं कि मैं क्या गलत कर रहा हूं, लेकिन मैं अनजान हूं। getPixels() के उपयोग से संबंधित अधिकांश उदाहरण या प्रश्न आमतौर पर संपूर्ण छवि की पिक्सेल जानकारी निकालने के मामले में होते हैं। इसलिए int सरणी का आकार आमतौर पर bitmap.getWidth() * bitmap.getHeight(), x और y मान 0, 0, और चौड़ाई है, ऊंचाई बिटमैप की चौड़ाई और ऊंचाई है।
क्या बिटमैप के getPixels() को मेरे उपयोग के उद्देश्य के लिए डिज़ाइन नहीं किया गया है (बिटमैप के उप-क्षेत्र की पिक्सेल जानकारी का एक हिस्सा प्राप्त करना)? या क्या मैं इसे गलत तरीके से उपयोग कर रहा हूं? क्या ऐसा करने का कोई वैकल्पिक तरीका है, शायद एक अलग वर्ग का उपयोग कर?
अगर किसी के पास इसके बारे में कुछ कहना है तो मैं इसकी सराहना करता हूं। धन्यवाद।
हालांकि मैं काफी तथ्य यह है कि getPixels() हमेशा संपूर्ण स्रोत बिटमैप की सरणी आकार रिटर्न से हैरान हूँ, आपकी सहायक सलाह के लिए धन्यवाद। –
गति के संदर्भ में getPixel से बेहतर पिक्सिक्स का उपयोग कर रहा है? –
मैं वर्ष 2017 से हूं और अब मुझे यकीन नहीं है कि यह पूरे बिटमैप को वापस कर देता है। मैंने पिक्सेल सरणी के आकार को स्ट्रैड * हेग्नट वैल्यू (पैरामीटर पाने के लिए पारित पैरामीटर) पर सेट करने का प्रयास किया और यह काम किया। मुझे यह मूल्य कभी-घटते पिक्सल सरणी आकार के लूप का उपयोग करके परीक्षण करके मिला है – FrinkTheBrave