读Exif格式的代码Word格式.docx

上传人:b****4 文档编号:15916720 上传时间:2022-11-17 格式:DOCX 页数:41 大小:33.71KB
下载 相关 举报
读Exif格式的代码Word格式.docx_第1页
第1页 / 共41页
读Exif格式的代码Word格式.docx_第2页
第2页 / 共41页
读Exif格式的代码Word格式.docx_第3页
第3页 / 共41页
读Exif格式的代码Word格式.docx_第4页
第4页 / 共41页
读Exif格式的代码Word格式.docx_第5页
第5页 / 共41页
点击查看更多>>
下载资源
资源描述

读Exif格式的代码Word格式.docx

《读Exif格式的代码Word格式.docx》由会员分享,可在线阅读,更多相关《读Exif格式的代码Word格式.docx(41页珍藏版)》请在冰豆网上搜索。

读Exif格式的代码Word格式.docx

修改纪录:

使用方法:

包含此头文件,然后调用函数

intEXIF_Read(LPCTSTRpszJpgFileName,EXIFINFO*pExifInfo)

即可获取EXIF信息。

EXIF信息包含在参数pExifInfo中

在定义了#defineEXIF_OUTPUT_ERRMSG(默认下已经定义)后可以使用

LPCTSTREXIF_GetErrorString();

获取出错信息

*********************************************************************

//////////////////////////////////////////////////////////////////////////

#ifndefSTATIC

#defineSTATICstatic

#endif

#defineEXIF_OUTPUT_ERRMSG//定义是否输出出错信息

//定义常量

#defineMAX_COMMENT1000//最大的注释字符串长度

//写入注释时,表明注释的类型,如ASCII,UNICODE等

typedefenumECT{

CT_ASCII=0,

CT_UNICODE,

CT_JIS,

CT_UNDEFINE

}COMMENT_TYPE;

//定义需要的结构体

#defineET_NOT_CLOSE_FILE0x00000001//最后不关闭打开的文件句柄

#defineET_MALLOC_THUMBNAIL0x00000002//拷贝缩略图的数据,调用者需要使用free()

#defineET_MALLOC_USERCOM0x00000004//是否拷贝用户注释,调用者需要使用free()

#defineET_MALLOC_MAKERCOM0x00000008//是否拷贝厂商注释,调用者需要使用free()

//JPG文件中的读入后的EXIFF信息保存到这个结构体中

typedefstructtag_ExifInfo{

DWORDdwExifType;

//取值为ET_NOT_CLOSE_FILE|ET_MALLOC_THUMBNAIL,....

DWORDdwExifType2;

charVersion[5];

//EXIF信息版本

charCameraMake[32];

//DC制造商

charCameraModel[40];

//DC型号

charDateTime[20];

//JPG文件日期

charDateTimeDigitized[20];

//JPG文件被其它软件修改日期

intHeight,Width;

//图像高度、宽度

intOrientation;

//拍摄方向,例如相机向左手方向旋转后拍摄的

intIsColor;

//

intProcess;

//被处理

intFlashUsed;

//是否使用闪光灯

floatFocalLength;

//焦距

floatExposureTime;

//曝光时间(快门速度)

floatApertureFNumber;

//光圈数

floatDistance;

//拍摄物体距离

floatCCDWidth;

//CCD大小

floatExposureBias;

//曝光补偿

intWhitebalance;

//白平衡

intMeteringMode;

//测光模式

intExposureProgram;

//曝光

intISOequivalent;

//ISO

intCompressionLevel;

//压缩

floatFocalplaneXRes;

//焦平面X轴分辨率

floatFocalplaneYRes;

//焦平面Y轴分辨率

floatFocalplaneUnits;

//焦平面分辨率单位

floatXresolution;

//X轴分辨率

floatYresolution;

//Y轴分辨率

floatResolutionUnit;

//分辨率单位

floatBrightness;

//亮度

charComments[MAX_COMMENT];

//注释

DWORDUserCOMLength;

//用户注释长度。

如果==0表示没有用户注释

char*UserCOM;

//用户注释

//if(dwExifType&

ET_MALLOC_USERCOM==TRUE)这个数值保存了用户注释数据,调用者需要使用free()

//否则为用户注释的偏移量(相对于文件起始0处)

DWORDMakerCOMLength;

//厂商注释长度。

如果==0表示没有厂商注释

char*MakerCOM;

//厂商注释

ET_MALLOC_MAKERCOM==TRUE)这个数值保存了厂商注释数据,调用者需要使用free()

//否则为厂商注释的偏移量(注意:

是在当前SECTION中的偏移量,不是相对整个文件的)

UCHAR*ThumbnailPointer;

//缩略图数据。

ET_MALLOC_THUMBNAIL==TRUE)这个数值保存了缩略图的数据

//否则为一个DWORD(需要强制转换)表示缩略图在JPG文件中的偏移值(相对于文件起始0处)

DWORDThumbnailSize;

//缩略图的大小(字节流ThumbnailPointer的长度)

//如果<

=0表示该JPG文件没有缩略图

HFILEhJpgFileHandle;

//返回打开的JPG文件句柄。

必须dwExifType&

ET_NOT_CLOSE_FILE==TRUE才是有效句柄

//用户需要使用CloseHandle(hJpgFileHandle)来关闭这个句柄

BOOLIsExif;

//是否存在EXIF信息

}EXIFINFO;

//接口函数

intEXIF_Read(LPCTSTRpszJpgFileName,EXIFINFO*pExifInfo);

LPCTSTREXIF_GetErrorString();

intEXIF_AddUserComments(LPCTSTRpszJpgFileName,LPCTSTRpszUserComments,DWORDdwCommentLength,COMMENT_TYPEnCommentType);

////////////////////////////////////////////////////////////////////////

.c文件

Copyright@版权所有@1998-2005HENGAI。

exif.c

*********************************************************************/

#include"

exif.h"

//读取EXIF过程中需要的结构体

typedefstructtag_Section_t{

UCHAR*Data;

intType;

unsignedSize;

}Section_t;

#ifdefEXIF_OUTPUT_ERRMSG

STATICTCHARm_szLastError[256];

//这里保存了出错的信息

#defineEXIF_ERR_OUT(str_err)strcpy(m_szLastError,str_err);

LPCTSTREXIF_GetErrorString()

{

return(LPCTSTR)m_szLastError;

}

#else

#defineEXIF_ERR_OUT

LPCTSTREXIF_GetErrrorString()

return"

Plese#defineEXIT_ERR_OUTinexif.h"

;

STATICEXIFINFO*m_pExifInfo=0;

STATICintm_MotorolaOrder=0;

STATICintm_ExifImageWidth=0;

/*Describesformatdescriptor

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 法律文书 > 调解书

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1