मैं जो कर रहा हूं वह कैमरे से canvas
पर एक छवि खींच रहा है, फिर view
को bitmap
में एक छवि युक्त कनवर्ट करें और इसे शीर्ष पर खींचें कैनवास। फिर अंतिम bitmap
बाहरी संग्रहण में सहेजा जाता है।कैमरे पर कब्जा कर लिया गया छवि के ऊपर किसी छवि को देखने या देखने के लिए कैसे करें
समस्या canvas
सहेजी गई छवि आकार के बजाय पूर्वावलोकन विंडो आकार में स्वयं आकार का प्रतीत होता है। , विभिन्न आकारों की वजह से
Bitmap myImage = BitmapFactory.decodeByteArray(imageData, 0,
imageData.length, options);
Bitmap mutableBitmap = myImage.copy(Bitmap.Config.ARGB_8888, true);
Paint paint = new Paint();
Canvas canvas = new Canvas(mutableBitmap);
view.setDrawingCacheEnabled(true);
viewCapture = Bitmap.createBitmap(view.getDrawingCache());
view.setDrawingCacheEnabled(false);
canvas.drawBitmap(viewCapture, 0, 0, paint);
fileOutputStream = new FileOutputStream(dir + "/" + imgName + ".jpg");
BufferedOutputStream bos = new BufferedOutputStream(fileOutputStream);
mutableBitmap.compress(CompressFormat.JPEG, quality, bos);
इस पर कब्जा कर लिया छवि के शीर्ष पर बिटमैप बचाता है, लेकिन:
यहाँ मेरी गतिविधि कक्षा में बात यह है कि कैमरा छवि के शीर्ष पर कब्जा कर लिया दृश्य विलय है इसके बाएं हाथ के कोने में ऑफसेट।
मैं ऐसा करके विभिन्न आकारों की स्थापना कर रहा हूँ मेरी surfaceChanged में निम्नलिखित
Camera.Parameters p = mCamera.getParameters();
Camera.Size myBestPreviewSize = getBestPreviewSize(w, h, p);
p.setPreviewSize(myBestPreviewSize.width, myBestPreviewSize.height);
Camera.Size myBestPictureSize = getBestPictureSize(w, h, p);
p.setPictureSize(myBestPictureSize.width, myBestPictureSize.height);
जाहिर है ऐसा करके, मैं पूर्वावलोकन विंडो के लिए सबसे अच्छा संकल्प, और कब्जा कर लिया छवि के लिए सबसे अच्छा संकल्प हो रही है। मेरा मानना है कि यह मुद्दा दो अलग-अलग प्रस्तावों के कारण हुआ है, लेकिन यह पता लगाना कि मैं कहां फंस गया हूं।
इस छवि पूर्वावलोकन खिड़कियों पता चलता है:
उम्मीद है कि निम्न छवियाँ बेहतर समस्या का वर्णन होगा। जैसा कि आप देख सकते हैं कि एंड्रॉइड छवि के मृत मध्य में है।
मैं ऊपर की छवि को कैप्चर करता हूं और यह सहेजा जाता है। मैं इसे देखने के लिए जाता हूं और यह ऐसा लगता है:
नोटिस एंड्रॉइड अब मध्य में नहीं है, यह शीर्ष बाएं कोने में है।
एक और परीक्षण के रूप में, मैं एंड्रॉयड हिस्सा रास्ता बंद स्क्रीन के रूप में अगले कैमरा पूर्वावलोकन
मैं ऊपर दिखाए गए के रूप में वास्तव में छवि पर कब्जा में दिखाया गया ले जाया गया है, और यह देखने की बात है, एंड्रॉयड बंद बिल्कुल कट जाता है यह कैसे पूर्वावलोकन विंडो में था, लेकिन फिर से अपने शीर्ष बाएं कोने में जब यह पूर्ण स्क्रीन होना चाहिए
यदि आप Sandbox.java को संपादित कर सकते हैं, तो आप getTransformedBitmap() विधि बनाने का प्रयास कर सकते हैं। पैरामीटर के रूप में नए बिटमैप को पास करने के लिए इसे केवल एक नया बिटमैप और एक नया कैनवास बनाना होगा। फिर अपने कैनवास पर ड्रॉ() को कॉल करें और बिटमैप वापस करें।यह view.getDrawingCache() का उपयोग करने से बेहतर काम कर सकता है। – thomas88wp
@ thomas88wp मैंने आपकी टिप्पणी को एक बार फिर आप का पालन करने की कोशिश करनी होगी। मैं नया बिटमैप कैसे बनाऊंगा? क्या आप मेरे लिए थोड़ा और विस्तार कर सकते हैं? आपकी सहायता की सराहना! – Badams
भ्रमित टिप्पणी के लिए खेद है। अपने स्क्रीनशॉट को देखते हुए, मैं कुछ कोड के साथ एक अलग समाधान का सुझाव देने जा रहा हूं (नीचे देखें)। – thomas88wp