- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
利用C#为数码照片添加拍照日期
利用C#为数码照片添加拍照日期
”利用C#实现任务栏通知窗口”后继续我们的C#实战演练。现在人们具备一台数码相机已经不是什么新鲜事了,更何况500万像素以上的数码相机更是逐渐成了主流。相比较以前以胶卷为感光介质的普通相机,数码相机可以将所照图像即刻转换成计算机可识别的图像文件格式以便浏览、共享和打印。虽然数码相机在技术和方便性上都远远高于普通相机,但是笔者发现所有已经生成的图像文件以及打印的数码照片上都没有拍照日期,若想在日后拍照时加上该选项也不是容易事,翻遍了数码相机的说明书竟然没有关于怎样在照片上显示拍照日期的帮助。而且,随着数码图像文件的不断增加,面对成本成本的相册要想回顾一下其到底是在何时拍照的将会非常困难,尤其像笔者这样不辞辛苦的记录小儿生长历程的朋友更感觉如此。虽然在桌面电脑上利用我的电脑浏览所拍照的图像文件时,在窗口底部任务栏上或者图像文件属性窗口的摘要页都可以清楚地显示出拍照日期,但是要想将拍照日期绘制到图像上且能够打印到数码照片上却没有工具可以做到。其实,拍照日期已经保存在了图像文件里,我们需要自己动手编程获取拍照日期并在图像的右下角将其绘制出来,然后保存新生成的图像文件并拷贝到数码照片打印店进行打印,我们就可以获得具备拍照日期的数码照片了,如下图:
!--[if !supportLists]--一、!--[endif]--
目前大部分数码相机都将所拍照的图像保存成JPG格式,而像拍照日期这样的信息统称为EXIF信息。EXIF是英文ExchangeableImageFile(可交换图像文件)的缩写,最初由日本电子工业发展协会(JEIDA--JapanElectronicIndustryDevelopmentAssociation)制订,当时JEITA决定为数码相机厂商专门制定一套标准,随着数码相机的发展,其普及趋势越来越明显,于是JEITA对Exif标准进行了升级,目前最新版本为2.2。其实EXIF也是一种图像文件格式,EXIF信息就是由数码相机在拍摄过程中采集一系列的信息,然后把信息放置在JPG文件或者TIFF文件的头部,也就是说EXIF信息是镶嵌在图像文件格式内的一组拍摄参数,主要包括摄影时的光圈、快门、ISO、拍照日期时间等各种与当时摄影条件相关的信息、相机品牌型号、色彩编码,甚至还包括拍摄时录制的声音以及全球定位系统(GPS)等信息。简单的说,它就好像是傻瓜相机的日期打印功能一样,只不过EXIF信息所记录的资讯更为详尽和完备。需要注意的是,用图像处理软件编辑过的数码图像文件有可能会丢失其EXIF信息。
所以,要想在图像上绘制拍照日期首先必须读取EXIF信息,然后将读取出来的拍照日期绘制在图像表面,我们将以500万像素分辨率为2592x1944的JPG图像文件为对象,使用Visual Studio .Net 2005 的C#来编写一工具程序来实现上述功能。
!--[if !supportLists]--二、 !--[endif]--技术背景
? ??EXIF信息以键值对的方式保存在数码JPG图像文件的头部,在.Net平台中所有图像文件头部信息统称为元数据,我们可以使用GDI+读取现有的元数据,也可以将新的元数据写入图像文件中。GDI+ 将单独的元数据段存储在 PropertyItem 对象中,读取 Image 对象的 PropertyItems 属性以便从某个文件中检索所有的元数据。PropertyItems 属性返回一个 PropertyItem 对象的数组。PropertyItem 对象具有以下四个属性:Id、Value、Len 和 Type。Id用于标识元数据项的标记,下表显示一些Id 的值:
十六进制值 说明 0x0320
0x010F
0x0110
0x0132
0x829A
0x5090
.... 图像标题
设备制造商
设备型号
拍照时间
Exif 曝光时间
亮度表
.... Value为数组值,这些值的格式由 Type 属性确定。Len属性指向的值的数组长度(以字节表示)。Type属性指向数组中值的数据类型。下表显示由 Type 属性值指示的格式:
数值 说明 1 一个 Byte 2 ASCII 编码的 Byte 对象的数组 3 16 位整数 4 32 位整数 5 包含两个表示有理数的 Byte 对象的数组 6 未使用 7 未定义 8 未使用 9 SLong 10 SRational
我们所感兴趣的ID值就是0x0132即图片拍照时间,对应的标记为PropertyTagDateTime,而在联机的MSDN中我们发现了更详细的关于EXIF属性的GDI+的描述,PropertyTagDateTime值的类型为PropertyTagTypeASCII,
您可能关注的文档
- 农村妇女生殖系统感染防治分析.doc
- 农村妇女生殖道感染状况及影响因素分析.doc
- 农村妇女生殖道感染防治健康教育材料应用效果评估.doc
- 农村妇幼健康教育探讨.doc
- 农村妇科肿瘤病人术后心理护理体会.doc
- 农村孕产妇及相关人群艾滋病知识与态度调查.doc
- 农村孕产妇高危因素及求医状况分析.doc
- 农村孕妇巨大儿对剖宫产率的影响分析.doc
- 农村学校预防艾滋病健康教育现状与对策探讨.doc
- 农村学龄前儿童气质特点与生长发育的关系研究.doc
- 2025至2030中国移动治疗台行业发展研究与产业战略规划分析评估报告.docx
- 2025至2030链激酶行业细分市场及应用领域与趋势展望研究报告.docx
- 2025至2030爆炸物探测扫描仪行业市场占有率及有效策略与实施路径评估报告.docx
- 2025至2030四川省智能制造行业细分市场及应用领域与趋势展望研究报告.docx
- 2026届高三二轮复习试题政治大单元突破练1生产资料所有制与分配制度含解析.docx
- 2026届高三二轮复习试题政治大单元突破练16哲学基本思想与辩证唯物论含解析.docx
- 2026届高三二轮复习试题政治大单元突破练2社会主义市场经济体制含解析.docx
- 浙江省衢州市五校联盟2025-2026学年高二上学期期中联考技术试题-高中信息技术含解析.docx
- 浙江省金丽衢十二校2026届高三上学期11月联考政治试题含解析.docx
- 2026届高三二轮复习试题政治大单元突破练7领导力量:中国共产党的领导含解析.docx
原创力文档


文档评论(0)