पर लिया गया था मुझे एक फोटो लेने, इसकी ओरिएंटेशन खोजने, कैनवास पर खींचने और कैनवास घुमाए जाने की आवश्यकता है। मुझे फोटोएंड्रॉइड - फोटो का अभिविन्यास कैमरा
उत्तर
आप EXIF टैग तस्वीर में एम्बेडेड का उपयोग करने की जरूरत है। यह रोटेशन और मिररिंग की सभी किस्मों की अनुमति देता है। मैंने पाया सबसे अच्छा संदर्भ here है। सामान्य तौर पर, के बाद आप उन्मुखीकरण मिलता है, आप डिग्री में रोटेशन पाने के लिए एक देखने समारोह के माध्यम से इसे चलाने के लिए चाहता हूँ:
private int getBitmapRotation() {
int rotation = 0;
switch (getExifOrientation()) {
case ExifInterface.ORIENTATION_ROTATE_180:
rotation = 180;
break;
case ExifInterface.ORIENTATION_ROTATE_90:
rotation = 90;
break;
case ExifInterface.ORIENTATION_ROTATE_270:
rotation = 270;
break;
}
return rotation;
}
का अभिविन्यास जानने में सहायता चाहिए, क्या आप फोटो ऊंचाई और चौड़ाई के आधार पर अभिविन्यास निर्धारित कर सकते हैं? यदि यह लंबा है, तो यह लंबा है, यह परिदृश्य है। यदि यह चौड़ा था, तो यह चौड़ा था, यह चित्र है।
यदि यह वर्ग है, तो आपको EXIF डेटा पढ़ना होगा और उम्मीद है कि यह उन छवियों के लिए सेट है। EXIF डेटा को उन्मुखीकरण डेटा देना चाहिए।
private int getExifOrientation() {
ExifInterface exif;
int orientation = 0;
try {
exif = new ExifInterface(mImagePath);
orientation = exif.getAttributeInt(ExifInterface.TAG_ORIENTATION, 1);
} catch (IOException e) {
e.printStackTrace();
}
Log.d(TAG, "got orientation " + orientation);
return orientation;
}
हालांकि, लौटे वास्तविक EXIF मूल्य sorta अजीब है:
नहीं, उनके पास समान चौड़ाई और ऊंचाई – StoneHeart
आयाम काफी पर्याप्त नहीं हैं - यह परिदृश्य हो सकता है लेकिन उल्टा हो सकता है, इस पर निर्भर करता है कि मैंने अपना फोन बाईं ओर या फोटो लेने के अधिकार के आधार पर किया है या नहीं। –
मैं अपने समस्या के लिए एक समान समाधान के लिए खोज रहा था। मैं कैमरे या गैलरी से एक फोटो ले रहा हूं और इसे अपने ऐप में उपयोग करने के लिए बिटमैप में बदल रहा हूं। समस्या यह थी कि पोर्ट्रेट में ली गई तस्वीरों को -90 डिग्री घुमाया जा रहा था।
उत्तर के लिए खोज मुझे यह पोस्ट मिला और https://stackoverflow.com/a/11081918/3062284 जो बहुत समान हैं। मैं वास्तव में बाद की पोस्ट का इस्तेमाल किया। हालांकि, @StoneHeart की तरह मुझे छवि पथ पढ़ने में त्रुटि हो रही थी।
मैं अपने onActivityResult() में इस कोड का उपयोग किया गया था:
case CAMERA_REQUEST_CODE:
if (resultCode == RESULT_OK);
uriImage = data.getData();
ExifInterface exif = new ExifInterface(uriImage.getPath());
के बाद से इस त्रुटि पिछली टिप्पणी मैंने सोचा कि मैं समाधान मैं https://stackoverflow.com/a/10564727/3062284
का उपयोग कर पाया मैं वास्तविक जरूरत का हिस्सा हैं में संबोधित नहीं किया गया था पोस्ट से इस विधि का उपयोग कर फ़ाइल के लिए पथ।
private String getRealPathFromURI(Uri contentUri) {
String[] proj = { MediaStore.Images.Media.DATA };
CursorLoader loader = new CursorLoader(this, contentUri, proj, null, null, null);
Cursor cursor = loader.loadInBackground();
int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
cursor.moveToFirst();
return cursor.getString(column_index);
}
और निम्नलिखित करने के लिए अपने कोड संपादन:
case CAMERA_REQUEST_CODE:
if (resultCode == RESULT_OK);
uriImage = data.getData();
String imagePath = getRealPathFromURI(uriImage);
ExifInterface exif = new ExifInterface(imagePath);
और कहा कि तय "JHEAD कर सकते हैं फ़ाइल नहीं खोल" त्रुटि मैं हो रही थी।
बूम आपने बस मेरी 2 घंटे की समस्या समाप्त कर दी! –
जेडड मुद्दे के लिए सर्वश्रेष्ठ समाधान – rookieDeveloper
- 1. एंड्रॉइड कैमरा पोर्ट्रेट अभिविन्यास
- 2. एंड्रॉइड में कैमरा/चित्र अभिविन्यास
- 3. Android कैमरा अभिविन्यास मुद्दा
- 4. एंड्रॉइड: पोर्ट्रेट मोड में कैमरा पूर्वावलोकन अभिविन्यास
- 5. आईओएस: कैमरा अभिविन्यास
- 6. कैप्चर फोटो ओरिएंटेशन एंड्रॉइड
- 7. पोर्ट्रेट अभिविन्यास में कैमरा का उपयोग
- 8. एंड्रॉइड - फोटो कैप्चर करें
- 9. एंड्रॉइड कैमरा एक फोटो लेने के बाद फ्रीज
- 10. एंड्रॉइड कैमरा
- 11. एंड्रॉइड फोन पर कैमरा कैप्चर की गई छवि के साथ अभिविन्यास समस्या का सामना करना
- 12. कैमरा इरादा फोटो सहेज नहीं रहा
- 13. फोटो अभिविन्यास का पता लगाने के लिए एल्गोरिदम
- 14. आईफोन: फ्रंट कैमरा के साथ फोटो लें
- 15. कैमरा पूर्वावलोकन कॉलबैक बफर का अभिविन्यास कैसे बदलें?
- 16. एंड्रॉइड: कैमरा
- 17. एंड्रॉइड कैमरा
- 18. एंड्रॉइड कैमरा छवि का आकार
- 19. एंड्रॉइड कैमरा
- 20. एंड्रॉइड कैमरा
- 21. एंड्रॉइड में फोटो गैलरी
- 22. एंड्रॉइड: फोटो अपलोड करें
- 23. एंड्रॉइड एक कैमरा बिटमैप का अभिविन्यास प्राप्त करें? और वापस -90 डिग्री घुमाएं
- 24. एंड्रॉइड के बीच अंतर: अभिविन्यास = "लंबवत" बनाम एंड्रॉइड: अभिविन्यास = "क्षैतिज"
- 25. एंड्रॉइड: अभिविन्यास = "लंबवत" TabWidget
- 26. एंड्रॉइड स्क्रीन अभिविन्यास
- 27. एंड्रॉइड 2.3 एम्यूलेटर अभिविन्यास
- 28. एंड्रॉइड अभिविन्यास सेंसर का विकल्प क्या है?
- 29. पूर्वावलोकन कैमरा से एंड्रॉइड कैमरा रिलीज त्रुटि
- 30. कैमरा रोल में फोटो में स्क्वायर कट कैसे करें?
मुझे त्रुटि मिली "01-11 00: 51: 37.687: ERROR/JHEAD (7055): उस पंक्ति पर '/file:/mnt/sdcard/.temp/photo1151619024.jpg' नहीं खोल सकता" exif = new ExifInterface (एममैजपाथ); " – StoneHeart
मुझे यकीन है कि फ़ाइल अभी भी है और मैंने पहले से ही एंड्रॉइड.permission.WRITE_EXTERNAL_STORAGE को मैनिफेस्ट – StoneHeart
/फ़ाइल में अनुमति सेट की है:/पथ के उचित हिस्से की तरह नहीं दिखता है ... यह शायद बस/mnt/sdcard/... – elijah