aardio 文档

aardio 范例: 图像 Exif 信息

//图像 Exif 信息
import console.int;
import fsys.dlg;
var jpgPath = fsys.dlg.open("JPG 图像文件|*.jpg||","请选择图像",io.getSpecial(0x27 /*_CSIDL_MYPICTURES*/) )
if(!jpgPath) return;

import gdip.exifTags; 
var exifTags = gdip.exifTags(jpgPath);  

/*
gdip.bitmap,gdip.image 都提供读写 Exif 属性的功能。
exifTags 只是简单封装了 gdip.image 的  eachProperty 等函数。
*/
for( tagId,tagName,propertyItem,t in exifTags.each() ){  
    var tagName = gdip.exifTags[tagId]:"Unknown";

    /*
    propertyItem 是一个结构体(struct)。
    其中 type 字段是一个数值表示的数据类型,所有类型参考 gdip.image.convertPropertyValue 源码。
    而 value 字段记录了原始的属性值,这是一个原生数组。
    数值类型存在 number 字段,一般是 value.array[1] 的数值格式。
    text 字段用于表示字符串值,经纬度的 text 字段为度分秒或度分格式。
    支持用 tostring 转为文本,或用 tonumber 转为单个数值。
    */

    //if(string.startWith(tagName,"Gps")){
        console.printf('0x%04x\t%s\t%s',tagId, tagName, tostring(propertyItem)  ) 
        console.more( 10 ) 
    //}
}

Markdown 格式