基于Exif的图片信息采集管理系统的设计与实现

计算机与现代化2012年第9期总第205期JISUANJIYUXIANDAIHUA文章编号:1006-2475(2012)09-0134-03基于Exi的图片信息采集管理系统的设计与实现f黎曜(江西日报社技术中心,江西南昌330038)摘要:探讨如何利用C#语言开发一套可自动读取图像自带的Exif信息,并根据Exif信息对图片进行识别、分类和保存,以供用户查询的软件系统。本系统分为4个部份:winform架构的图片自动归档模块、Web架构的图片信息查询模块、图片信息处理类、数据库操作类。本文着重介绍图片信息处理类与图片自动归档模块的实现方法。中图分类号:TP311文献标识码:Adoi:10.3969/j.issn.1006-2475.2012.09.033DesignandImplementationofPictureInformationAcquisitionManagementSystemBasedonExifLIYao(TechnologyCenter,JiangxiDaily,Nanchang330038,China)Abstract:ThispaperdiscusseshowtousetheC#languagetodevelopasystemwhichcanautomaticallyreadimagewithExifin-formation,andmakepictureidentification,classificationandpreservation,accordingtotheExifinformationforthesoftwareoftheuserquery.Thesoftwareisdividedintothefour-part:winformframeworkofimageauto-archivingmodule,Web-basedpicturein-formationquerymodule,imageinformationprocessingclass,databaseoperationclass.Thisarticlefocusesontheclassofpictureinformationprocessingandthepictureautomaticallyarchivingmodule.to;表示层也包括两个,分别是winform架构的图像自动导入端和Web架构的图像信息查询管理端。其中业务逻辑层和表示层均用C#语言开发,开发环境为VisualStudio2008,系统运行环境为IIS6.0。系统架构如图1所示。引言0Exif又称为交换图像文件,是专门为数码相机的照片设定的,可以记录数码照片的属性信息和拍摄数据。Exif信息可以附加于JPEG、TIFF、RIFF等文件之中。本文以JPEG文件为例,介绍.NET如何获取图像文件的Exif信息。在.NET系统中虽然没有提供直接获取Exif信息的类或方法,但可以通过System.Drawing.Image类的PropertyItems属性数组来获取相关信息;然后将图片移动至指定目录保存,并将图片的Exif等信息通过数据库操作类写入数据库,供用户图1系统架构图图片信息处理类的设计本系统的开发利用.NET提供的System.Draw-ing.Image类的PropertyItems属性数组来获取图片的Exif信息。该属性组的每个属性项包含ID(属性ID2系统结构设计本系统为B/S三层式结构,其中数据层为SQLServer开发的数据库PCS;业务逻辑层包括两个类,一个是数据处理类pcsdb、一个是图像处理类pcspho-1号)、Type(属性类型)、Value(属性的数据指针)、收稿日期:2012-04-11作者简介:黎曜(1974-),男,江西南昌人,江西日报社技术中心工程师,本科,研究方向:.NET技术2012年第9期黎曜:基于Exif的图片信息采集管理系统的设计与实现135Length(属性数据长度)。表1Exif信息对应表不同类型数据的处理在PropertyItems属性组中Type代表了Value的数值存储类型,因此系统需要根据Type值的不同分别使用对应的处理方法。当Type为1时,Value为字节数组;为2时,Value为末位带空终止符的ASCII字符串。这两种类型的Value可以通过.NET自带的En-coding.ASCII.GetString方法进行处理。代码如下:sMaker=Encoding.ASCII.GetString(originalImage.Proper-tyItems[i].Value);当Type为3时,Value为无符号的短(16位)整型数组,系统将通过如下方法进行取值:intbyteToInt16(byte[]b){2.1该类将遍历PropertyItems属性组,并根据ID和Type分别进行处理,最后将取出的值赋给该类相应的公共属性。代码如下:publicpcsphoto(stringFilepath){System.Drawing.ImageorgImg=System.Drawing.Image.FromFile(Filepath);for(inti=0;i<orgImg.PropertyItems.Length;i++){switch(orgImg.PropertyItems[i].Id){case0x010E:sContent=Encoding.Default.GetString(orgImg.Property-Items[i].Value,0,orgImg.PropertyItems[i].Len);break;case0x010F:sMaker=Encoding.ASCII.GetString(orgImg.PropertyItems[i].Value);break;case0x882...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供参考,付费前请自行鉴别。
3、如文档内容存在侵犯商业秘密、侵犯著作权等,请点击“举报”。

常见问题具体如下:

1、问:已经付过费的文档可以多次下载吗?

      答:可以。登陆您已经付过费的账号,付过费的文档可以免费进行多次下载。

2、问:已经付过费的文档不知下载到什么地方去了?

     答:电脑端-浏览器下载列表里可以找到;手机端-文件管理或下载里可以找到。

            如以上两种方式都没有找到,请提供您的交易单号或截图及接收文档的邮箱等有效信息,发送到客服邮箱,客服经核实后,会将您已经付过费的文档即时发到您邮箱。

注:微信交易号是以“420000”开头的28位数字;

       支付宝交易号是以“2024XXXX”交易日期开头的28位数字。

客服邮箱:

biganzikefu@outlook.com

所有的文档都被视为“模板”,用于写作参考,下载前须认真查看,确认无误后再购买;

文档大部份都是可以预览的,笔杆子文库无法对文档的真实性、完整性、准确性以及专业性等问题提供审核和保证,请慎重购买;

文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为依据;

如果您还有什么不清楚的或需要我们协助,可以联系客服邮箱:

biganzikefu@outlook.com

常见问题具体如下:

1、问:已经付过费的文档可以多次下载吗?

      答:可以。登陆您已经付过费的账号,付过费的文档可以免费进行多次下载。

2、问:已经付过费的文档不知下载到什么地方去了?

     答:电脑端-浏览器下载列表里可以找到;手机端-文件管理或下载里可以找到。

            如以上两种方式都没有找到,请提供您的交易单号或截图及接收文档的邮箱等有效信息,发送到客服邮箱,客服经核实后,会将您已经付过费的文档即时发到您邮箱。

注:微信交易号是以“420000”开头的28位数字;

       支付宝交易号是以“2024XXXX”交易日期开头的28位数字。

文秘专家
机构认证
内容提供者

1

确认删除?