मैंने एक ऐसा एप्लिकेशन बनाया है जो फ़ोटो शूट करता है और सहेजता है। मेरे पास उस पूर्वावलोकन के शीर्ष पर एक पूर्वावलोकन और ओवरले है। हैएंड्रॉइड कैमरा - मैं बाइट सरणी से एक विशिष्ट "आयताकार" कैसे ले सकता हूं?
मैं क्या करने की जरूरत छवि के हिस्से को निकालने के लिए: ओवरले एक वर्ग (वर्ग के आसपास के क्षेत्र पूर्वावलोकन थोड़ा गहरे रंग दिखाता है) को परिभाषित करता है, जैसा कि आप छवि में देख सकते हैं जहां वर्ग है। वर्ग इस तरह परिभाषित किया गया है:
Rect frame = new Rect(350,50,450,150);
मैं कैसे कर सकते हैं कि? मेरे पास बाइट सरणी (बाइट [] डेटा है) जिसे मैं सहेज सकता हूं, लेकिन मैं एप्लिकेशन को बदलना चाहता हूं ताकि केवल वर्ग क्षेत्र बचाया जा सके।
संपादित करें: मैं निम्नलिखित की कोशिश की है:
int[] pixels = new int[100000];
ByteArrayOutputStream bos = new ByteArrayOutputStream();
Bitmap bitmap = BitmapFactory.decodeByteArray(data , 0, data.length);
bitmap.getPixels(pixels, 0, 480, 350, 50, 100, 100);
bitmap = Bitmap.createBitmap(pixels, 0, 100, 100, 100, Config.ARGB_4444);
bitmap.compress(CompressFormat.JPEG, 0, bos);
byte[] square = bos.toByteArray();
और फिर सरणी "वर्ग" एक नया फ़ाइल पर लिखने ... समस्या यह है कि मैं लाइनों से बना एक तस्वीर मिल ... है परिवर्तन के साथ एक समस्या है जिसे मैंने
महाकाव्य के रूप में सरल उपाय ... http://stackoverflow.com/a/17733530/294884 – Fattie
@Eyal आप तो सिर्फ आयत क्षेत्र को बाइट [] से फसल के बिना फसल करना चाहते हैं? – ashishdhiman2007