国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 網站 > 建站經驗 > 正文

Android:操,作圖片Exif信息

2019-11-02 15:23:30
字體:
來源:轉載
供稿:網友

   什么是Exif

  先來了解什么是Exif。Exif是一種圖像文件格式,它的數據存儲于JPEG格式是完全相同的,實際上Exif格式就是JPEG格式頭插入了數碼照片的信息,包括拍攝的光圈、快門、平衡白、ISO、焦距、日期時間等各種和拍攝條件以及相機品牌、型號、色彩編碼以及GPS等。簡單來說,Exif=拍攝參數+JPED。因此,可以利用任何可以查看JPEG文件的php?/%BF%B4%CD%BC%C8%ED%BC%FE/' target='_blank'>看圖軟件瀏覽Exif信息,但是并不是所有圖形程序都能處理Exif信息,而自Android2.0之后,加入了對圖片Exif數據的支持。

  ExifInterface

  在Android下,通過ExifInterface類操作圖片的Exif信息,雖然這個類的名字包含Interface,但它不是一個接口,它是一個類,處于"android.media.ExifInterface"包下,是媒體庫的一部分功能的實現。ExifInterface有一個構造函數,接受一個String類型的數據,此為讀取圖片文件的地址。

  Exif數據在圖片中可以理解為Key-value鍵值對的方式存儲,一般通過如下幾個方法操作:

  String getAttribute(String tag):獲取圖片中屬性為tag的字符串值。

  double getAttribute(String tag,double defaultValue):獲取圖片中屬性為tag的double值。

  int getAttributeInt(String tag,defaultValue):獲取圖片中屬性為tag的int值。

  void setAttribute(String tag,String value):根據輸入參數,設定圖片Exif的值。

  void saveAttrubutes():把內存中圖片的Exif寫入到圖片中。

  可以看到,上面大部分方法操作了一個String類型的tag參數,此為Exif的屬性,在ExifInterface中定義了一些字符串的靜態常量表示這些tag值,常用如下:

  TAG_APERTURE:光圈值。

  TAG_DATETIME:拍攝時間,取決于設備設置的時間。

  TAG_EXPOSURE_TIME:曝光時間。

  TAG_FLASH:閃光燈。

  TAG_FOCAL_LENGTH:焦距。

  TAG_IMAGE_LENGTH:圖片高度。

  TAG_IMAGE_WIDTH:圖片寬度。

  TAG_ISO:ISO。

  TAG_MAKE:設備品牌。

  TAG_MODEL:設備型號,整形表示,在ExifInterface中有常量對應表示。

  TAG_ORIENTATION:旋轉角度,整形表示,在ExifInterface中有常量對應表示。

  以上常量不包括GPS的信息,實際上Exif還可以保存拍攝時GPS的信息,但是需要設備支持。下面通過一個Demo,講解一下這些參數的獲取與值的展示:

  代碼如下:

  1 btn_readExifInLog.setOnClickListener(new View.OnClickListener() {

  2

  3 @Override

  4 public void onClick(View v) {

  5 try {

  6 ExifInterface exifInterface = new ExifInterface(

  7 "/sdcard/a.jpg");

  8 String FFNumber = exifInterface

  9 .getAttribute(ExifInterface.TAG_APERTURE);

  10 String FDateTime = exifInterface

  11 .getAttribute(ExifInterface.TAG_DATETIME);

  12 String FExposureTime = exifInterface

  13 .getAttribute(ExifInterface.TAG_EXPOSURE_TIME);

  14 String FFlash = exifInterface

  15 .getAttribute(ExifInterface.TAG_FLASH);

  16 String FFocalLength = exifInterface

  17 .getAttribute(ExifInterface.TAG_FOCAL_LENGTH);

  18 String FImageLength = exifInterface

  19 .getAttribute(ExifInterface.TAG_IMAGE_LENGTH);

  20 String FImageWidth = exifInterface

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 菏泽市| 包头市| 保定市| 泰安市| 衡阳市| 合作市| 山东省| 宣化县| 大丰市| 泰和县| 临夏县| 军事| 北海市| 定陶县| 黄冈市| 亚东县| 永年县| 申扎县| 老河口市| 湖南省| 报价| 宜黄县| 四会市| 乳源| 衡阳县| 垦利县| 靖西县| 沅陵县| 罗平县| 齐河县| 蓬莱市| 安平县| 黄大仙区| 泸水县| 石城县| 内丘县| 大同市| 杭锦旗| 许昌市| 德钦县| 那坡县|