【IT168技术】从Android 2.0开始新增了ExifInterface类,ExifInterface类主要描述多媒体文件比如JPG格式图片的一些附加信息,比如拍照的设备厂商,当时的日期时间,曝光时间,快门速度等。该类位于android.media.ExifInterface的位置,需要调用API Level至少为5即2.0 SDK。
一、ExifInterface类给我们了一个实用的方法public byte[] getThumbnail () 这个方法可以生成一个缩略图,返回一个字节数组,我们通过以前讲到的通过OutputStream将其保存成一个JPG文件。当然如果要是显示到一个Drawable对象,可以通过decodeByteArray(byte[], int, int) 类来解析这个字节数组,不过具体生成的分辨率还不清楚。
二、图片的MIME Exif信息
图片的的Exif信息和MP3的ID3标签类似,使用了属性和值的存储方式。通过public void setAttribute (String tag, String value) 来设置,而获取可以通过 public int getAttributeInt (String tag, int defaultValue) 和 public String getAttribute (String tag) 两种方法都可以,getAttributeInt 重载方法一第二个参数为我们设置的默认值,如果成功则返回相应Tag的值;特定的整数内容为该方法直接返回值。而重载方法二该方法直接返回结果,如果失败则为null。
目前Android SDK定义的Tag有:
TAG_DATETIME 时间日期
TAG_FLASH 闪光灯
TAG_GPS_LATITUDE 纬度
TAG_GPS_LATITUDE_REF 纬度参考
TAG_GPS_LONGITUDE 经度
TAG_GPS_LONGITUDE_REF 经度参考
TAG_IMAGE_LENGTH 图片长
TAG_IMAGE_WIDTH 图片宽
TAG_MAKE 设备制造商
TAG_MODEL 设备型号
TAG_ORIENTATION 方向
TAG_WHITE_BALANCE 白平衡
从Android 2.0.1 SDK上看属性不是很多,详细的可能会在以后的版本中添加,调用示例如下
String sFileName="cwj-android123.jpg";
ExifInterface exif = new ExifInterface(filename);
String sModel=exif.getAttribute(ExifInterface.TAG_MODEL);
最终sModel就是拍照设备的型号,这里我们可以看到是Nexus One或HTC Hero等等的字符,当然是用数码相机拍照从PC上传的是该文件原始生成的设备,比如IXUS 980等等。
http://doc.chinaunix.net/android/200910/488798.shtml
分享到:
相关推荐
ExifInterface是Android SDK提供的一款用于读取和修改图片元数据的工具类,特别是与Exchangeable Image File Format(EXIF)相关的数据。EXIF是一种标准,用于存储图像和音频文件的附加信息,如拍摄时间、地点、相机...
ExifInterface是Android SDK提供的一种接口,专门用于读取和写入JPEG文件的Exchangeable Image File Format (EXIF)元数据。下面将详细解释如何使用ExifInterface来读取图片的地理位置信息。 首先,了解什么是EXIF...
ExifInterface是Android SDK提供的一个用于读取和写入JPEG文件中Exif标签的类,它能够帮助开发者获取到照片的EXIF信息,EXIF即Exchangeable image file format,是一种用于存储图像文件的元数据的格式。 首先,使用...
- 在Android中,可以使用`ExifInterface`类来读取和修改这些元数据。 2. **使用ExifInterface类**: - `ExifInterface`是Android提供的一个类,专门用来处理图像文件的EXIF信息。 - 创建`ExifInterface`对象,...
11. **多媒体框架** - Android的MediaStore、ExifInterface等类可以帮助开发者处理图片的元数据和存储问题。 12. **跨平台库** - 如Volley、Retrofit等网络库在处理网络图片时也会涉及图片处理,资料可能包含如何...
`ExifInterface`是Android SDK中的一个类,通常用于处理图像元数据,如EXIF标签,但在这里它被巧妙地用在生成缩略图上。在Android 2.0及以上版本,`ExifInterface`增加了从JPEG文件中读取和写入元数据的能力,包括...
1. **文件读取**:使用`File`类读取拍摄的照片,并将其转换为`byte[]`数组。 2. **构建上传请求**:使用`HttpURLConnection`或者第三方库如Retrofit、OkHttp等,构建POST请求,包含照片的二进制数据和经纬度信息。 ...
6. **图片旋转**: 图片旋转功能可以使用`ExifInterface`读取和修改图片的EXIF信息,从而改变图片的方向。此外,还可以直接使用`Matrix`对象旋转`Bitmap`。 7. **图片压缩**: 图片压缩是为了减少内存占用和提高传输...
Android提供了`ExifInterface`类来读取和修改JPEG图片的EXIF信息,其中包括旋转角度。 此外,当不再需要相机时,必须释放资源,调用`Camera.release()`关闭相机,避免内存泄漏和资源浪费。同时,如果在预览过程中...
Android 通过 ExifInterface 判断 Camera ...通过 ExifInterface 判断图片朝向的方法可以帮助我们更好地展示拍摄的图片,并且可以在 Android 应用开发中使用。这是一个非常有用的方法,可以帮助我们更好地处理图片。
在Android开发中,按时间顺序显示图片是一项常见的需求,尤其在相册应用或者日志记录类应用中。这个任务涉及到图像处理、数据存储以及UI布局等多个方面。下面将详细讲解如何实现这一功能。 首先,我们需要获取到...
此外,Android的AsyncTask类和Intent服务为开发者提供了处理网络操作的便利方式,可以在后台执行而不影响用户界面。 "多媒体"是Android系统的一大特色。Android支持多种媒体格式的播放和录制,包括音频、视频和图像...
此外,ExifInterface类可以帮助处理图像的Exif信息,用于正确地旋转图片。 11. **动画与帧动画**:Android的Animation框架可以创建平滑的图像动画,而帧动画则可以将一系列图像播放成动画效果。 这些知识点构成了...
此外,还会讲解如何使用Camera API捕捉和处理照片,以及使用ExifInterface处理图像元数据。 第四章:Android视频编程基础 在视频编程部分,会介绍如何使用VideoView或MediaPlayer来播放视频,以及如何通过...
可能需要使用`ExifInterface`类来读取并修改图片的Exif信息,尤其是`ORIENTATION`属性,以确保图片旋转正确。 3. **视频录制**: - 视频录制通常使用`MediaRecorder`类。设置`MediaRecorder`时,必须指定合适的...
它基于android [ExifInterface] 和[Jhead] c库 进口 只需将此行添加到您的依赖项组中: compile 'it.sephiroth.android.exif:library:+' 用法 import it.sephiroth.android.library.exif2.ExifInterface; import ...
在处理图片时,由于Android 7.0引入了运行时权限,所以需要在用户使用相机或访问相册前检查并请求相应的权限。使用` ActivityCompat.checkSelfPermission()` 和 `ActivityCompat.requestPermissions()` 进行检查和...
1. **图片缩放**:Android提供了Bitmap类,可以使用其`createScaledBitmap()`方法对图片进行缩放。此方法可以根据需要调整图片尺寸,同时保持原始宽高比,以适应不同的显示需求。 2. **图片压缩**:为了节省存储...