سؤال

لقد نشرت هذا على الروبوت ديف المنتديات, ولكن أردت أن تصل إلى هنا.

واحدة من الأنشطة في التطبيق التقاط صورة.الصورة معاينة يظهر الطريق الصحيح على الشاشة في 1.5 و 1.6, ولكن عندما تم حفظه يحفظ jpg 90 استدارة.

أنا يمكن أن تدور ذلك الوقت الحقيقي عند عرض و أعتقد أن بإمكاني إعادة حفظه مرة واحدة حفظ.مشكلتي هو أنني أود أن حفظه بشكل صحيح عند التقاط الصورة.

بلدي التطبيق في حين جمعت في 1.5 يعمل بشكل جيد.لدي بعض مشاكل الذاكرة ث/ 1.6 بسبب حجم الصورة التي كانت غريبة b/c حجم الصورة وزيادة عند التقاط الصور عن طريق أخذ صورة w/ surfaceholder/imagecapture رد.يبدو أنني ثابت إعادة عرض تلك الصور عن طريق تغيير حجم لهم باستخدام bitmapfactory مصفوفة.لكن الكاميرا هي الآن الدورية كل 90 درجة.يبدو أن بلدي تجاوز surfaceChanged لا يفعل شيئا حيث كنت في وضع دوران 90 (لا أستطيع تذكر لما كان قبل 10 أشهر!).لقد حاولت في الدورية المعلمات الكاميرا paramters في 90 درجة ، 0 درجة.لا يبدو أن تفعل أي شيء...أي أفكار ؟

هل كانت مفيدة؟

المحلول

الكاميرا السائقين لا يعرفون اتجاه الجهاز.في 1.5 و 1.6, أنت بحاجة إلى استدعاء المعلمات.مجموعة("التناوب" ، درجة) إخبار السائقين عن الدوران قبل استدعاء takePicture().في 2.0 ، هناك API جديدة setRotation (انظر أدناه).لاحظ أن بعض الأجهزة تدوير كامل الصور لك بعض فقط تعيين اتجاه في EXIF رأس.

http://developer.android.com/reference/android/hardware/Camera.Parameters.html#setRotation(int)

يحدد اتجاه الجهاز في درجة.على سبيل المثال, لنفترض أن الموقف الطبيعي من الجهاز المناظر الطبيعية.إذا كان المستخدم يأخذ صورة في وضع أفقي في 2048x1536 القرار يجب أن يكون دوران تعيين إلى 0.إذا كان المستخدم تدور الهاتف 90 درجة في اتجاه عقارب الساعة التناوب يجب تعيين 90.يمكن أن تستخدم التطبيقات OrientationEventListener تعيين هذه المعلمة.الكاميرا السائق قد تحدد التوجه في EXIF رأس دون تدوير الصورة.أو السائق قد تدوير الصورة و الصورة المصغرة.إذا Jpeg الصورة استدارة ، التوجه في EXIF رأس سوف يكون في عداد المفقودين أو 1 (الصف #0 هو أعلى العمود #0 الجانب الأيسر).
المعلمات
دوران توجه الجهاز في درجة.دوران يمكن أن يكون فقط 0, 90, 180 أو 270

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top