Tag: exif

如何使用Enums的简单性设计易于扩展的API?

抱歉标题模糊; 我想不出如何更清楚地说出来。 以下是问题的重点: 强调 询问有关ExifTool for Java库的API设计问题。 以下是当前API 的示例 。 作为USER ,API使用起来非常简单,因为您只需传入要返回的图像元数据的枚举。 作为DEV ,API有点糟糕,因为您无法使用更多Enum类型轻松扩展基类以支持lib中可能不直接支持的其他元数据。 简单地预定义和支持“ 所有元数据 ”并非易事 。 题 鉴于设置信息,我所追求的是试图找到一种方法来预先定义人们通常想要从他们的图像中获得的30或40个最常见的元数据标记; 现在一切都被定义为枚举 ,但这种类不可扩展。 如果我使用“Class-per-Metadata-flag”路由,那么可扩展性将很简单,但是开箱即用的API将不那么友好。 如果闭包提供了一个非常漂亮和简单的解决方案,我会考虑制作这个库Java 8+的v2.0,但是否则我显然更愿意让它与更多系统(Java 6/7)兼容而不是更少。 概要 我对该库的目标是“易于使用和扩展” – 我觉得我已经在1.x版本中使用了“简单易用”的方面,但是该库不易扩展,我想在2.x系列。 我已经坐在2.x版本上超过一年等待灵感罢工,它已经躲过了我; 我希望有人可以发现我的错误,我可以以一种非常优雅的方式向前移动lib。 谢谢你们的时间!

如何将Exif long / lat转换为实际值?

我试图从我的一些照片中获取Exif数据,这些是我收到的纬度和经度值。 有人可以帮帮我,告诉我这些数字是什么意思吗? DEBUG / lat = 30 / 1,12 / 1,34 / 1(7588):lattitude DEBUG / long = 81 / 1,22 / 1,41 / 1(7588):经度 提前致谢。

使用ExifInterface时的FileNotFoundException

我一直在将图像上传到FirebaseStorage,但在显示它们时往往是错误的方法。 我发现ExifInterface可以确定图像的方向,并在必要时旋转和翻转它。 从手机上的图库区域选择图像时出现此错误。 我可以从图库中选择手机上的图像,它可以显示在页面上。 URI地址和数据之间的差异是一个/ Data.getData() address : content://media/external/images/media/53331 uri.toString() address: content:/media/external/images/media/53331 我正在使用uri地址作为图像的绝对路径,以便能够在必要时旋转它。 我将此值传递给另一个名为modifyOrientation方法,然后将其旋转。 一旦传递到方法,它就会到达该行 ExifInterface ei = new ExifInterface(image_absolute_path); 然后在找不到文件时返回catch。 下面是我得到的整个错误以及我的所有代码。 我该如何解决我遇到的这个问题。 因此,当我将URI传递给下一个方法时,它实际上具有正确的地址。 @Override public void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); final FirebaseUser user = auth.getCurrentUser(); if (requestCode == GALLERY_INTENT && resultCode == RESULT_OK) { progressDialog = new ProgressDialog(getActivity()); […]

使用Java编辑jpeg EXIF数据

我想编辑jpg文件的属性,如:评论,标题,拍摄日期,相机制造商等。 我找到了库来读取这些数据。 但是我需要一个带有示例的免费库来编辑它们。 我知道apache的成像(sanselan)。 但我无法使用它编辑数据。 如果您以前使用过它,我会接受这个答案,只有当您提供的示例代码不是他们网站上的代码时。 因为即使我使用他们的例子我也无法编辑GPS数据以外的任何属性。 运行代码后,file-properties-details仍然具有相同的值。 谢谢 ! 注意:我也尝试过JHeader( https://sourceforge.net/projects/jheader/ ),但是使用它作为带有-cl选项的进程仍然没有更改属性列表。