我想获得位图的方向。我使用这段代码:
ExifInterface ei = new ExifInterface(photoPath);
int orientation = ei.getAttributeInt(ExifInterface.TAG_ORIENTATION,
ExifInterface.ORIENTATION_NORMAL);
switch(orientation) {
case ExifInterface.ORIENTATION_ROTATE_90:
rotateImage(bitmap, 90);
break;
case ExifInterface.ORIENTATION_ROTATE_180:
rotateImage(bitmap, 180);
break;
// etc.
}
我的问题是这一行:
ExifInterface ei = new ExifInterface(photoPath);
在此代码中 photoPath 是一个字符串,但我没有任何字符串路径!我在Bitmap中的内存中加载了Bitmap!我如何设置ExifInterface的路径?
答案 0 :(得分:0)
我如何设置ExifInterface的路径?
你没有。
但是,当您结束Bitmap
时,您也没有任何EXIF标题。
如果您尝试将此应用于相机拍摄的照片,并且该照片为JPEG格式,则表示已编码照片的byte[]
可以传递给readExif()
{ {1}}对象(从零参数构造函数创建):
ExifInterface
否则,您可能希望解释此ExifInterface exif=new ExifInterface();
exif.readExif(data);
的来源。
答案 1 :(得分:0)
创建临时文件并调用标准new ExifInterface(tempFile)
的第一个解决方案。我不喜欢效率低下的
其他解决方案是here,但您必须通过添加第三方代码来扩大您的APK。
我个人选择的解决方案是将图像捕获到临时文件时旋转,然后将其保存在Sqlite数据库的博客字段中。然后在观看时,我不需要处理轮换,以及无法读取EXIF标题的问题,因为我没有文件。