草庐IT

Android - 查找照片的方向是由相机拍摄的

我需要拍照,找出它的方向,在Canvas上绘制它并旋转Canvas。我需要帮助找出照片的方向 最佳答案 您需要使用嵌入在照片中的EXIF标签:privateintgetExifOrientation(){ExifInterfaceexif;intorientation=0;try{exif=newExifInterface(mImagePath);orientation=exif.getAttributeInt(ExifInterface.TAG_ORIENTATION,1);}catch(IOExceptione){e.print

android - 如何处理不支持 EXIF 方向数据的 Android 设备?

我正在HTCDesirewithAndroid2.2上测试我的应用程序。它完全按照我的意愿工作。我使用Sherlock包在旧设备上与新设备上具有相同的样式。我的AVD设置为使用最新的android,看起来也不错。然后我将它放在三星GalaxyS2上,当我处理相机和画廊图像时,它们旋转错误。它接缝三星上的某些东西(相机应用程序,androiditself)没有或者它确实检查EXIF并且我的图像方向错误。纵向图像以横向加载,横向图像以纵向加载。我想我需要以某种方式检查EXIF并忽略它以便按原样加载图像?更大的问题是-如何知道是否有任何其他设备(一些HTC,一些HUAWEI或任何)会出现类似

Android 为图像文件创建自定义 Exif 属性

目前我正在尝试将自定义exif标签/数据添加到相册中的图像文件。我能够修改ExifInterface中定义的现有标签类但是,我想存储自定义数据,例如我的应用用户的用户ID,但似乎无法创建自定义exif属性我找到的最接近的解决方案是here,但不起作用, 最佳答案 尝试使用标签保存Exif数据:"UserComment"代码:StringmString="Yourmessagehere";ExifInterfaceexif=newExifInterface(path_of_your_jpeg_file);exif.setAttribu

android - ExifInterface 不更新 exif 标签

我正在尝试使用ExifInterface更改exif标签。我使用setAttribute()并调用saveAttributes()。标签暂时保存,下次旧值还在,没有更新......................例子:ExifInterfaceexifInterface=newExifInterface(filePath);Stringo1=exifInterface.readAttribute(TAG_ORIENTATION);//o1is"0"exifInterface.setAttribute(TAG_ORIENTATION,"90");exifInterface.saveAtt

android - 无法在 Android 中使用 ExifInterface 设置拍摄日期/日期时间标签

我已经研究并尝试了很多选项来尝试让它工作,但不幸的是我没有得到任何结果。我想做的是在Android应用程序中的JPEGExif数据中设置拍摄日期标签(Tag_DateTime)。我已经有了设置纬度和经度标签的工作代码,但我这辈子都无法设置拍摄日期标签。代码如下:SimpleDateFormatfmt_Exif=newSimpleDateFormat("yyyy:MM:ddHH:mm:ss");try{ExifInterfaceexif=newExifInterface(filePhoto.getPath());//SetandsavetheGPSandtimedataexif.setA

android - 使用 ExifInterface 设置图像方向

Camera.Parameters中的setRotation方法并不适用于所有设备。有人建议手动更改EXIF信息来解决问题。你能给我一个简短的例子,说明如何使用ExifInterface设置exif信息,从而将图像方向设置为纵向吗?privateintsavePicture(byte[]data){FilepictureFile=getOutputMediaFile();if(pictureFile==null)returnFILE_CREATION_ERROR;try{FileOutputStreamfos=newFileOutputStream(pictureFile);fos.w

android - 在 Android 中进行条件编译?

是否有任何类型的Android条件编译?我不得不为Android3(API11)制作我的项目只是因为ExifInterface在Android2.3(API10)中几乎没有有用的属性,尽管它出现在API5(!!??)。我不想将我的应用限制为ICS用户。谢谢! 最佳答案 您可以动态检查设备的当前API版本并根据该版本执行不同的操作:if(Build.VERSION.SDK_INT但是请注意,如果您需要实例化并非所有API都可用的类,那么您应该在可运行的或单独的包装类中进行,例如:if(Build.VERSION.SDK_INT

android - camera2 如何从图像读取器监听器中的 YUV_420_888 图像获取 Exif 数据

我正在尝试从YUV_420_888图像获取Exif数据,但它不起作用。我尝试了几种解决方案,例如将图像以jpeg格式保存到磁盘,将其转换为输入流,但似乎没有任何效果。我使用androidcamera2api捕获YUV_420_888图像。然后在OnImageAvailableListener中获取图像并尝试使用ExifInterfaceAPI读取其EXIF数据。但它始终是空的。我尝试了这个link中的所有方法得到正确的字节数组。这是我的代码:@OverridepublicvoidonImageAvailable(ImageReaderimageReader){if(!isRecordi

Android:从图像中获取所有现有的 exif 数据

我知道可以通过在ExifInterface中指定字符串标签来获取特定的exif数据。例如,获取图像的日期类似于:ExifInterfaceexif=newExifInterface(pathToImage);exif.getAttribute(ExifInterface.TAG_DATETIME);有没有一种方法可以简单地获取所有非空的可用exif字符串,而无需为每个字符串手动编写获取代码? 最佳答案 您可以将所有要查询的标签组成一个数组,并将查询的非空结果放入集合(可能是hashmap)或其他东西(可能是JsonObject)中。

android - Android中位图压缩后如何保存Exif数据

我需要从SD卡中获取图像,创建、旋转并保存更改后的图像。我尝试使用这段代码Bitmaporiginal=BitmapFactory.decodeFile(file.getAbsolutePath());ExifInterfaceoriginalExif=newExifInterface(file.getAbsolutePath());intorientation=originalExif.getAttributeInt(ExifInterface.TAG_ORIENTATION,ExifInterface.ORIENTATION_UNDEFINED);Matrixmatrix=newM