微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Nexus S和Samsung Galaxy S I9000的ACTION_IMAGE_CAPTURE方向问题

如何解决Nexus S和Samsung Galaxy S I9000的ACTION_IMAGE_CAPTURE方向问题

| 我正在尝试拍摄图片,并使用以下代码将其存储到内部存储器中:
Intent intent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
takenPhoto = new File(uploadsFolder,getNewPicFileName());
intent.putExtra(MediaStore.EXTRA_OUTPUT,Uri.fromFile(takenPhoto));
startActivityForResult(intent,SHOOT_MEDIA_REQUEST_CODE);
问题是在Nexus S和galaxy S设备上认设置,并且ACTION_IMAGE_CAPTURE意向的单一方向是横向。如果我以人像模式拍摄照片,则该照片将存储到旋转的“ takenPhoto”文件中。 该问题似乎仅出现在Samsung galaxy S设备(galaxy S和Nexus S)上,我尝试过的其他设备会根据图像拍摄期间的方向自动旋转。 我将非常感谢您对此问题的任何帮助。     

解决方法

据我所知,这是因为Intent并未设置being1ѭ值。当事物通过普通的相机应用程序时,它的确设置了。 但是,在我的Nexus S上,该文件仍会获取正确的EXIF数据。因此,您可以获得以下方向:
ExifInterface exif = new ExifInterface(\"filepath\");
exif.getAttributeInt(ExifInterface.TAG_ORIENTATION,ExifInterface.ORIENTATION_NORMAL);
然后您可以使用ContentResolver.update添加正确的ORIENTATION数据。您只需要将ExifInterface方向选项转换为旋转的度数即可。 您的另一个选择是创建自己的活动以操作相机硬件并记录文件。然后,您需要跟踪旋转并在保存捕获的图像时将值写入元数据。由于Camera应用程序是Android的一部分,因此您可以轻松进行复制和修改。     ,我在包括Galaxy Ace在内的三星手机上也遇到过这个问题(我称拍照操作与您的操作完全不同) 我的猜测是这是操作系统/硬件级别的问题。您是否尝试过使用本机相机应用程序拍照,并设法在该应用程序中获得正确的方向?     

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。