我一直在尝试使用Android ACTION_IMAGE_CAPTURE
意图和ACTION_GET_CONTENT
意图拍摄照片或选择照片。我遇到的问题是,当我尝试在纵向模式下使用Android照片意图拍摄照片时,它会将其保存为横向。
我试图从URI字符串中保存正确定位照片的Bitmap
。
我发现了这个问题:Android Camera Intent Saving Image Landscape When Taken Portrait,这是我遇到的完全相同的问题,但答案是不完整的,对我来说不起作用。例如,resizedBitmap
,opts
和file
Uri.getPath()
是什么?
答案 0 :(得分:0)
有些相机会将横向模式锁定为相机的默认模式(Samsung note 2),因此如果您在potrait模式下拍照,图像仍会以横向模式保存。大多数相机会在图像中添加元数据,如相机供应商,型号等。在可以呈现的各种元数据中,我们感兴趣的是旋转数据。它指定图像旋转的程度。要了解旋转,您可以使用 ExifInterface 类。
resizedBitmap 图像存储为android中的位图对象。由于图像可以很大,将它们整个加载到内存中会导致内存错误,并使您的应用程序消耗更多内存。因此,首先将位图的大小调整为适当的大小,然后加载到内存中。
opts 通过opts,您必须引用BitmapFactory.Options方法。它是一个提供改变位图行为的方法,比如使它变为可变(设置为true,你可以将灰度等效果应用于此位图),找到它的高度和宽度(以像素为单位),而不将其加载到RAM等等。
file 它是一个用于在系统中存储的任何文件中执行CRUD操作的类。
Uri.getPath()此方法返回存储图像的路径或null。