基于Exif的图片信息采集管理系统的设计与实现.doc_第1页
基于Exif的图片信息采集管理系统的设计与实现.doc_第2页
基于Exif的图片信息采集管理系统的设计与实现.doc_第3页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

计 算 机 与 现 代 化2012 年第 9 期总第 205 期JISUANJI YU XIANDAIHUA文章编号: 1006-2475( 2012) 09-0134-03基于的图片信息采集管理系统的设计与实现Exif黎曜( 江西日报社技术中心,江西 南昌 330038)摘要: 探讨如何利用 C#语言开发一套可自动读取图像自带的 Exif 信息,并根据 Exif 信息对图片进行识别、分类和保存,以供用户查询的软件系统。本系统分为 4 个部份: winform 架构的图片自动归档模块、Web 架构的图片信息查询模块、图片信息处理类、数据库操作类。本文着重介绍图片信息处理类与图片自动归档模块的实现方法。关键词: C#; Exif; 图片信息; 管理中图分类号: TP311文献标识码: Adoi: 10 3969 / j issn 1006-2475 2012 09 033Design and Implementation of Picture Information AcquisitionManagement System Based on ExifLI Yao( Technology Center,Jiangxi Daily,Nanchang 330038,China)Abstract: This paper discusses how to use the C # language to develop a system which can automatically read image with Exif in-formation,and make picture identification,classification and preservation,according to the Exif information for the software of the user query The software is divided into the four-part: winform framework of image auto-archiving module,Web-based picture in- formation query module,image information processing class,database operation class This article focuses on the class of picture information processing and the picture automatically archiving moduleKey words: C#; Exif; pictures information; managementto; 表示层也包括两个,分别是 winform 架构的图像自动导入端和 Web 架构的图像信息查询管理端。其中 业务逻辑层和表示层均用 C #语言开发,开发环境为 Visual Studio 2008,系统运行环境为 IIS 6 0。系统架 构如图 1 所示。引言0Exif 又称为交换图像文件,是专门为数码相机的照片设定的,可以记录数码照片的属性信息和拍摄数 据。Exif 信息可以附加于 JPEG、TIFF、RIFF 等文件之中。本文以 JPEG 文件为例,介绍 NET 如何获取图 像文件的 Exif 信息。在 NET 系统中虽然没有提供直接获取 Exif 信 息的类或方法,但可以通过 System Drawing Image 类 的 PropertyItems 属性数组来获取相关信息; 然后将图 片移动至指定目录保存,并将图片的 Exif 等信息通 过数据库操作类写入数据库,供用户在需要时以 Web 方式检索、浏览。图 1 系统架构图图片信息处理类的设计本系统的开发利用 NET 提供的 System Draw- ing Image 类的 PropertyItems 属性数组来获取图片的 Exif 信息。该属性组的每个属性项包含 ID ( 属性 ID2系统结构设计本系统为 B / S 三层式结构,其中数据层为 SQL Server 开发的数据库 PCS; 业务逻辑层包括两个类, 一个是数据处理类 pcsdb、一个是图像处理类 pcspho-1号) 、Type ( 属 性 类 型) 、Value ( 属性的数据指针) 、收稿日期: 2012-04-11作者简介: 黎曜( 1974-) ,男,江西南昌人,江西日报社技术中心工程师,本科,研究方向: NET 技术。2012 年第 9 期黎曜: 基于 Exif 的图片信息采集管理系统的设计与实现135Length( 属性数据长度) 。表 1 Exif 信息对应表不同类型数据的处理在 PropertyItems 属性组中 Type 代表了 Value 的 数值存储类型,因此系统需要根据 Type 值的不同,分 别使用对应的处理方法。当 Type 为 1 时,Value 为字节数组;为 2 时,Value 为末位带空终止符的 ASCII 字符 串。这两种类型的 Value 可以通过 NET 自带的 En-coding ASCII GetString 方法进行处理。代码如下:sMaker = Encoding ASCII GetString ( originalImage Proper- tyItemsi Value) ;当 Type 为 3 时,Value 为无符号的短( 16 位) 整 型数组,系统将通过如下方法进行取值:int byteToInt16( byteb)if ( b Length = = 2)2 1该类将遍历 PropertyItems 属性组,并根据 ID 和Type 分别进行处理,最后将取出的值赋给该类相应 的公共属性。代码如下:public pcsphoto( string Filepath)System Drawing Image orgImg = System Drawing Image FromFile( Filepath) ;for ( int i = 0; i orgImg PropertyItems Length; i + + )switch ( orgImg PropertyItemsi Id)case 0x010E:sContent = Encoding Default GetString ( orgImg Property- Itemsi Value,0,orgImg PropertyItemsi Len) ;break;case 0x010F:sMaker = Encoding ASCII GetString ( orgImg PropertyItemsi Value) ;break;case 0x8827:sIso = iso + byteToInt16 ( orgImg PropertyItemsi Value) ToString( ) ;break;case 0x0202:iSize = byteToInt32( orgImg PropertyItemsi Value) ;break;case 0x829A:sShutter = getEntryRational( orgImg PropertyItemsi Value) ;break; iWidth = orgImg Width; iHeight = orgImg Height; orgImg Dispose( ) ;return ( ( ( int) b1)elsereturn 1; 8)+ b0;当 Type 为 4 时 Value 为无符号的长( 32 位) 整型数组:int byteToInt32( bytearr)if ( arr Length! = 4)return 1;elsereturn Convert ToInt32 ( arr3 241 8 | arr0) ;arr2 16 | arr|当 Type 为 5 时,指定 Value 数据成员为无符号的长整型对数组,每一对都表示一个分数,第一个整 数是分子,第二个整数是分母。private string getEntryRational( bytebytes)string ret = string Empty;int a = 0;int b = 1;bytedata = GetBytes( bytes,0,4) ;a = byteToInt32 ( data) ;data = GetBytes( bytes,4,4) ;b = byteToInt32 ( data) ;ret = string Format( 0 / 1 ,a,b) ;return ret;2 2 获取图片信息在 PropertyItems 属性组中 ID 属性中保存着 16进制整型 ID 号,不同的 ID 号代表不同的 Exif 信息。自动归档模块的设计本系统开发了一个 winform 程序,通过 winform 程序中的 Timer 控件的 Tick 事件触发并执行遍历指 定文件夹。系统将把该文件夹中的所有文件移动到 图片保存文件夹中,并通过 pcsphoto 类获得该图片的3部份 ID 对应信息如表 1 所示。ID 号类型属性ID 号类型属性010E2图像说明90042拍摄时间010F2设备生产商88275ISO01102设备型号829D5光圈011A5X 轴像素829A5曝光时间011B5Y 轴像素92073测光模式01312处理软件920A5焦距01322最后处理时间92093闪光灯136计 算 机与现代 化2012 年第 9 期相关信息,最后通过 pcsdb 类写入数据库。遍历文件夹与取图片信息部份代码如下:DirectoryInfo dirinfo = new DirectoryInfo ( textBox1 Text Trim( ) ) ; / / textBox1 中为指定目录路径string strfilename; / / 图片保存文件夹if( dirinfo Exists)ArrayList ALsql = new ArrayList( ) ;int irow = 0;foreach( System IO FileInfo item in dirinfo GetFiles ( * jpg ,SearchOption AllDirectories) )其他模块的设计本系统还设计了一个 Web 化的图片信息查询管 理端和一个数据库管理类 pcsdb。在 pcsdb 类中为用 户提供了多个数据库操作方 法。 如: 检 索 表 返 回 DataSet 的方法 getdataset ( ) 、执行 SQL 语句的方法 executesql( ) 、通 过 事 务 执 行 SQL 语 句 的 方 法 exe-4cutesqltran( ) 、取表的最大 ID 的方法 getmaxid ( ) 等。而查询管理端主要是通过 datalist 对数据库中的图片及信息进行列表显示,并为用户提供删除、下载图片 与修改图片信息等功能。FileInfo finfo = new FileInfo( textBox1 Text Trim( )Name) ;tryif( finfo Exists)photoinfo pinfo = new pcsphoto ( textBox1 Text Trim ( )tem Name) ;+ item结束语随着近年来数码照相机的飞速普及,数码照片也 在快速增长。如何便捷、安全地管理这些图片文件成 为了突出的问题。本系统的开发就为此提供了一个 合理的解决方案。在本系统中利用图片自带的 Exif 信息,基本实现了图片的自动入库归档。因为信息全 部保存于图片的 JPG 文件中,这样数据库的灾难恢复 也将非常简单。现在该系统己完成开发并投入使用。5+ i-filename = System DateTime Now ToString ( MMddmmss )+ irow ToString( ) Trim( ) ;File Copy( textBox1 Text Trim( ) + item Name,strfilename+ filename + jpg ) ;strsql = insert into phototab( photofile,photoext,type2, ;strsql1 = strsql1 + tifdesc,tifmaker,tifmodel,tifsoft,tifcopy,tifiso,tifdigtime ;strsql1 = strsql1 + ,tifwidth,tifheight,tifdate ) values ( +filename;strsql + = , jpg, 20, + pinfo SContent + , +pinfo SMaker;参考文献:1孟宪会,张慧妍 ASP NET 2 0 应用开发技术M 北京: 人民邮电出版社,2006美内格尔,美埃夫琴,等 C#高级编程M 李铭 译 北京: 清华大学出版社,2008International Press Telecommunications Council Photo Meta-dataEB / OL http: / / www iptc org / cms / site / index html?channel = CH0089,2008-10-10杨帆 解读 ExifJ 数字世界,2003( 5) : 66-67英夏普 Visual C#2010 从入门到精通M 周靖译北京: 清华大学出版社,2010美兰多夫,美加德纳 Visual Studio 2008 高级编 程M 李 梦 汶,任 鸿 译 北 京: 清 华 大 学 出 版 社,2009美埃斯波西托,等 Microsoft NET 企业级应用架构 设计M 陈黎夫译 北京: 电子工业出版社,2010美Glenn Johnson ADO NET 2 0 高级编程M 段 超译 北京: 清华大学出版社,2006美惠伦,等 SQL Server 2005 管理员手册M 黄湘 情,谢琳,张静妍译 北京: 人民邮电出版社,200923strsql1 + = , + pinfo SModel + ,+ , + pinfo SUser + , + pinfo S

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论