Exif的全称是Exchangeable Image File(可交换图像文件),最初由日本电子工业发展协会制订,它是JPEG文件的一种,遵从JPEG标准,只是在文件头信息中增加了有关拍摄信息的内容和索引图。简单来说,EXIF 信息就是由数码相机在拍摄过程中采集一系列的拍摄参数,然后把信息放置在JPEG格式文件的头部,这其主要包括摄影时的光圈、快门、曝光补偿、闪光灯、ISO感光度、日期时间等各种信息,此外像相机品牌型号、色彩编码、后期使用过什么软件进行处理都被记录在Exif信息中。
Android使用ExifInterface这个类来获取图片信息。
源代码如下:
1 package com.example.day17_02getExif; 2 3 import java.io.IOException; 4 5 import android.app.Activity; 6 import android.media.ExifInterface; 7 import android.os.Bundle; 8 import android.os.Environment; 9 import android.view.Menu; 10 import android.view.MenuItem; 11 import android.view.View; 12 import android.widget.TextView; 13 14 public class MainActivity extends Activity { 15 16 @Override 17 protected void onCreate(Bundle savedInstanceState) { 18 super.onCreate(savedInstanceState); 19 setContentView(R.layout.activity_main); 20 } 21 22 public void getpictureinfo(View v){ 23 ExifInterface exif =null; 24 25 String path =Environment.getExternalStorageDirectory().getAbsolutePath() 26 +"/DCIM/100ANDRO/cameras/fun1.jpg"; 27 try { 28 exif = new ExifInterface(path); 29 } catch (IOException e) { 30 // TODO Auto-generated catch block 31 e.printStackTrace(); 32 } 33 34 String date = exif.getAttribute(ExifInterface.TAG_DATETIME); 35 String width = exif.getAttribute(ExifInterface.TAG_IMAGE_WIDTH); 36 String height = exif.getAttribute(ExifInterface.TAG_IMAGE_LENGTH); 37 String make = exif.getAttribute(ExifInterface.TAG_MAKE); 38 String model = exif.getAttribute(ExifInterface.TAG_MODEL); 39 String iso = exif.getAttribute(ExifInterface.TAG_ISO); 40 41 TextView tv_pictureinfo = (TextView) findViewById(R.id.tv_pictureinfo); 42 tv_pictureinfo.setText(date+"\r\n" 43 +width+"\r\n" 44 +height+"\r\n" 45 +make+"\r\n" 46 +model+"\r\n" 47 +iso+"\r\n"); 48 } 49 }
1 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 2 xmlns:tools="http://schemas.android.com/tools" 3 android:layout_width="match_parent" 4 android:layout_height="match_parent" 5 android:paddingBottom="@dimen/activity_vertical_margin" 6 android:paddingLeft="@dimen/activity_horizontal_margin" 7 android:paddingRight="@dimen/activity_horizontal_margin" 8 android:paddingTop="@dimen/activity_vertical_margin" 9 tools:context="com.example.day17_02getExif.MainActivity" 10 android:orientation="vertical" > 11 12 13 <Button 14 android:layout_width="wrap_content" 15 android:layout_height="wrap_content" 16 android:text="获取图片信息" 17 android:onClick="getpictureinfo"/> 18 <TextView 19 android:id="@+id/tv_pictureinfo" 20 android:layout_width="wrap_content" 21 android:layout_height="wrap_content" 22 android:text="图片信息" /> 23 24 </LinearLayout>
时间: 2024-10-15 02:50:42