问题描述
直接读取俺可不会,不过笨人有笨办法,可以利用一个叫jhead的小软件来帮忙,速度飞快,如果想让exif信息更详细些,可以换用exiftool'生成exif信息,赋予变量mypicture_e,整理后数据存入mybinarydata_e()DimMyProcessAsNewProcess()'生成新的进程MyProcess,用以调用外部命令jhead.exe生成exif信息MyProcess.StartInfo.FileName=(Application.StartupPath&"jhead.exe")MyProcess.StartInfo.UseShellExecute=FalseMyProcess.StartInfo.RedirectStandardInput=FalseMyProcess.StartInfo.RedirectStandardOutput=TrueMyProcess.StartInfo.RedirectStandardError=TrueMyProcess.StartInfo.CreateNoWindow=TrueMyProcess.StartInfo.Arguments=photofilepathMyProcess.Start()mypicture_e=MyProcess.StandardOutput.ReadToEnd()'将生成的exif信息赋予变量mypicture_e'将照片exif信息分解到exif_tmp数组,等待处理Dimexif_tmp()AsString=mypicture_e.Split(Chr(13))'定义exif_Info数组用于存储最终exif信息Dimexif_Info(14,1)AsString'定义e2c数组用于翻译exif信息Dime2c(14,1)AsStringe2c(0,0)="Filename"e2c(0,1)="文件名称"e2c(1,0)="Filesize"e2c(1,1)="文件尺寸"e2c(2,0)="Filedate"e2c(2,1)="修改时间"e2c(3,0)="Cameramake"e2c(3,1)="相机厂家"e2c(4,0)="Cameramodel"e2c(4,1)="相机型号"e2c(5,0)="Date/Time"e2c(5,1)="拍摄时间"e2c(6,0)="Resolution"e2c(6,1)="分辨率"e2c(7,0)="Flashused"e2c(7,1)="闪光灯"e2c(8,0)="Focallength"e2c(8,1)="焦距"e2c(9,0)="Exposuretime"e2c(9,1)="快门时间"e2c(10,0)="Aperture"e2c(10,1)="光圈"e2c(11,0)="ISOequiv."e2c(11,1)="ISO规格"e2c(12,0)="Whitebalance"e2c(12,1)="白平衡"e2c(13,0)="MeteringMode"e2c(13,1)="测光模式"e2c(14,0)="Exposure"e2c(14,1)="曝光模式"'生成最终exif信息ForiAsInteger=0To14'将exif项目翻译成中文exif_Info(i,0)=e2c(i,1)Ifexif_tmp.Length>14Then'将信息写入exif_Info数组Ifexif_tmp(i).Contains(e2c(i,0))Thenexif_Info(i,1)=exif_tmp(i).Remove(0,15).TrimElseexif_Info(i,1)=NothingEndIfEndIfNext代码虽然简单,但特实用,这可是费了我一天的时间想出来的。
解决方案
解决方案二:
jhead.exe是什么程序?