2017-01-21 7 views
5

एंड्रॉइड में, मुझे इस कैमरे के ट्यूटोरियल https://inducesmile.com/android/android-camera2-api-example-tutorial/ से एक छवि वस्तु मिलती है। लेकिन अब मैं पिक्सेल मानों के माध्यम से लूप करना चाहता हूं, क्या किसी को पता है कि मैं यह कैसे कर सकता हूं? क्या मुझे इसे किसी और चीज़ में बदलने की ज़रूरत है और मैं यह कैसे कर सकता हूं?android.media.Image को बिटमैप ऑब्जेक्ट में कैसे परिवर्तित करें?

धन्यवाद

उत्तर

5

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

Image image = reader.acquireLatestImage(); 
    ByteBuffer buffer = image.getPlanes()[0].getBuffer(); 
    byte[] bytes = new byte[buffer.capacity()]; 
    buffer.get(bytes); 
    Bitmap bitmapImage = BitmapFactory.decodeByteArray(bytes, 0, bytes.length, null); 

फिर एक बार आप बिटमैप वस्तु मिलता है, आप अब पिक्सल के सभी के माध्यम से पुनरावृति कर सकते हैं।

+0

यदि बफर का उपयोग बाद में नहीं किया जाता है तो 'buffer.get (बाइट्स) 'पंक्ति का उद्देश्य क्या है? – mercury0114

+2

यह छवि को बफर से बाइट्स सरणी में स्मृति में लोड करता है। तो 'get' छवि बफर से बाइट को पुनः प्राप्त करना है। –

+0

क्या ऐसा करने का कोई और तरीका है (छवि से पिक्सल तक पहुंचें)? बिटमैप लोड करने के लिए बहुत सारी मेमोरी की आवश्यकता होती है। – Mugur

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