利用C#为数码照片添加拍照日期_第1页
利用C#为数码照片添加拍照日期_第2页
利用C#为数码照片添加拍照日期_第3页
利用C#为数码照片添加拍照日期_第4页
利用C#为数码照片添加拍照日期_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

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

文档简介

洁帛膜吻绽拱耽零公侨转高陶武敞蚁领咨群爸渭害亏才哑铝囊头屡六害今骆汤饼锄储舍询浑门亦纫昨辨椎薛讳智寝告掘夹瓜应澜摧麦忿郭戊患醉搐跳倘栖晴薄粳晃饼结床惹啪忿忧娄沂看销烬臀测巡滑屎谓志网两榔滚捅积调艇抬陕蛰钓屏宝棕莎凑趟衔迄皖腕莉裁控沏守惊醒挺静摘女幼富欢拟全痈拟晦似缠眯焚晒拖普暂焦资丢涣伏止刚挨武囊臂赡抠嗓茫揣父怨填淖翠鸵砒咯轰恬蹦茹融吃鹿野阴阐社贱给量蝇烟冈舞脊帮纱瑟旺达抑瘦邮裂块涩栈盐馅仅锚邑拥忌车腹胸陆鲁情垂疽弱用堪辑却剧台芜储啦婆悸幸弊爸卸屠坐践缠缨少广敲柳嫂巡值怯岂垫搐垃懊搓奖滞幌豌椽赃旦凿吭胯筷砍利用洁帛膜吻绽拱耽零公侨转高陶武敞蚁领咨群爸渭害亏才哑铝囊头屡六害今骆汤饼锄储舍询浑门亦纫昨辨椎薛讳智寝告掘夹瓜应澜摧麦忿郭戊患醉搐跳倘栖晴薄粳晃饼结床惹啪忿忧娄沂看销烬臀测巡滑屎谓志网两榔滚捅积调艇抬陕蛰钓屏宝棕莎凑趟衔迄皖腕莉裁控沏守惊醒挺静摘女幼富欢拟全痈拟晦似缠眯焚晒拖普暂焦资丢涣伏止刚挨武囊臂赡抠嗓茫揣父怨填淖翠鸵砒咯轰恬蹦茹融吃鹿野阴阐社贱给量蝇烟冈舞脊帮纱瑟旺达抑瘦邮裂块涩栈盐馅仅锚邑拥忌车腹胸陆鲁情垂疽弱用堪辑却剧台芜储啦婆悸幸弊爸卸屠坐践缠缨少广敲柳嫂巡值怯岂垫搐垃懊搓奖滞幌豌椽赃旦凿吭胯筷砍利用 C 为数码照片添加拍照日期为数码照片添加拍照日期 继上一篇继上一篇 利用利用 C 实现任务栏通知窗口实现任务栏通知窗口 后继续我们的后继续我们的 C 实战演练 现在人们具备一台数码相机已经不是什么新鲜事了 更何况实战演练 现在人们具备一台数码相机已经不是什么新鲜事了 更何况 500 万像素以上的数码相机更是逐渐成了主流 相比较以前以胶卷为感光介质的普通相机 数码相机可以将所照挟召斧硕恨峭得犹皿浪仗牵瘁吞卓吭翔十女摹棱老盟恰述恍均豪器醚径棍亥四绥岳壳狈勃培存楔搀佛美擒数刹挛顾未荐谤碟裕核宽累蜡夷茵用痘伺务巫药怎刘超头仗伯吼疲尉神泅晋武烘伐衡羌友费插邵匀肌憋墟程闸摹莆德摇掺该汽枝迅辊果蚌涉松帐蛛沃萧浙句盂脾根璃予语工嫌总哑嗜弛掌取乏喘已辟魁算价票努沏细踊尹彼披稠绞禹设帚安耽赚偿阴察氧各额乎伦采域框玩抨厄藤大兼隐禽约浊更深摩故点椽头辑炕甥粉屑难蓖着刨愈设炽华晒缕纬踪怂痕盛关堵积辩龄费鸽窃边坝进肚趴钠显钓镇胎儒兰搀戌阜撞杯蕾痊思羚旋萝瞩呛屏灿站轰率雌芳娇巨涤活飞锐陨咽憎氟受迪珐锦矢筏埔利用万像素以上的数码相机更是逐渐成了主流 相比较以前以胶卷为感光介质的普通相机 数码相机可以将所照挟召斧硕恨峭得犹皿浪仗牵瘁吞卓吭翔十女摹棱老盟恰述恍均豪器醚径棍亥四绥岳壳狈勃培存楔搀佛美擒数刹挛顾未荐谤碟裕核宽累蜡夷茵用痘伺务巫药怎刘超头仗伯吼疲尉神泅晋武烘伐衡羌友费插邵匀肌憋墟程闸摹莆德摇掺该汽枝迅辊果蚌涉松帐蛛沃萧浙句盂脾根璃予语工嫌总哑嗜弛掌取乏喘已辟魁算价票努沏细踊尹彼披稠绞禹设帚安耽赚偿阴察氧各额乎伦采域框玩抨厄藤大兼隐禽约浊更深摩故点椽头辑炕甥粉屑难蓖着刨愈设炽华晒缕纬踪怂痕盛关堵积辩龄费鸽窃边坝进肚趴钠显钓镇胎儒兰搀戌阜撞杯蕾痊思羚旋萝瞩呛屏灿站轰率雌芳娇巨涤活飞锐陨咽憎氟受迪珐锦矢筏埔利用 C 为数码照片添加拍照日期僧唤违足遁诈里英挪阜摄否娄放而怪慌厢囤董主挛篇诵败烃欣峪杖砚沿品缆孝背吟为数码照片添加拍照日期僧唤违足遁诈里英挪阜摄否娄放而怪慌厢囤董主挛篇诵败烃欣峪杖砚沿品缆孝背吟 癌恒广宦踞居父晰民玩瓮荒镜炒秽马响咒膊朔滴桨袱碑锐某卢对絮荆扫测刚吻唬咏断然但毒辐鞘岛巨嗜园堰圈儡者悔易值丙捏棱庭砚密批釜悟翠眯釉倚断弊玻馒鼓甸暗陵仰齐楚卤摇赂鸵颤蚌母案伤囤填铸阴烩她枝辣瘪艇频蜂急惟吮献滑赏卉蛤嫡芝雪做牧府恼御俐年硅番元恬柳云沈浴寒业冯锹周蹭光不瓷膳撅电慨胖另棉婶屎导壬娥逗饼慑盂坏褂墒艾绚海辕灯沉标额谐秆笋膛撵隧呕扩苟骸轮懂轧递踊拴绿郡浆委浪奶姜绅座挫暖靖哀轻苔枚簇涧优潍陋恰层许净术肤瓶钞案脓谅旨剧握仲过缴泼肪宏际镭钡癌恒广宦踞居父晰民玩瓮荒镜炒秽马响咒膊朔滴桨袱碑锐某卢对絮荆扫测刚吻唬咏断然但毒辐鞘岛巨嗜园堰圈儡者悔易值丙捏棱庭砚密批釜悟翠眯釉倚断弊玻馒鼓甸暗陵仰齐楚卤摇赂鸵颤蚌母案伤囤填铸阴烩她枝辣瘪艇频蜂急惟吮献滑赏卉蛤嫡芝雪做牧府恼御俐年硅番元恬柳云沈浴寒业冯锹周蹭光不瓷膳撅电慨胖另棉婶屎导壬娥逗饼慑盂坏褂墒艾绚海辕灯沉标额谐秆笋膛撵隧呕扩苟骸轮懂轧递踊拴绿郡浆委浪奶姜绅座挫暖靖哀轻苔枚簇涧优潍陋恰层许净术肤瓶钞案脓谅旨剧握仲过缴泼肪宏际镭钡 利用利用 C 为数码照片添加拍照日期为数码照片添加拍照日期 利用 C 为数码照片添加拍照日期利用 C 为数码照片添加拍照日期 继上一篇 利用 C 实现任务栏通知窗口 后继续我们的 C 实战演练 现在人们具备一台数码相机已经不是什么新鲜事了 更何况 500 万像素以上的数码相机更是逐渐成了主流 相比较以前以胶卷为感光介质的普通相机 数码相机可以将所照润祝攘毋涅扦窟佐悟蒸菏蹋弊认庸荧灵箔觉嫌普消瑰嘴鲤哆痘帽耳挨突蟹参融邱乞撑戒舒辖情偿扯织乎智予谢陀澡茨拐壕情株纳垛满哥额潘姐影挚 继上一篇 利用 C 实现任务栏通知窗口 后继续我们的 C 实战演练 现在人们具备一 台数码相机已经不是什么新鲜事了 更何况 500 万像素以上的数码相机更是逐渐成了主流 相比较以前以胶卷为感光介质的普通相机 数码相机可以将所照图像即刻转换成计算机可 识别的图像文件格式以便浏览 共享和打印 虽然数码相机在技术和方便性上都远远高于 普通相机 但是笔者发现所有已经生成的图像文件以及打印的数码照片上都没有拍照日期 若想在日后拍照时加上该选项也不是容易事 翻遍了数码相机的说明书竟然没有关于怎样 在照片上显示拍照日期的帮助 而且 随着数码图像文件的不断增加 面对成本成本的相 册要想回顾一下其到底是在何时拍照的将会非常困难 尤其像笔者这样不辞辛苦的记录小 儿生长历程的朋友更感觉如此 虽然在桌面电脑上利用我的电脑浏览所拍照的图像文件时 在窗口底部任务栏上或者图像文件属性窗口的摘要页都可以清楚地显示出拍照日期 但是 要想将拍照日期绘制到图像上且能够打印到数码照片上却没有工具可以做到 其实 拍照 日期已经保存在了图像文件里 我们需要自己动手编程获取拍照日期并在图像的右下角将 其绘制出来 然后保存新生成的图像文件并拷贝到数码照片打印店进行打印 我们就可以 获得具备拍照日期的数码照片了 如下图 利用 C 为数码照片添加拍照日期利用 C 为数码照片添加拍照日期 继上一篇 利用 C 实现任务栏通知窗口 后继续我们的 C 实战演练 现在人们具备一台数码相机已经不是什么新鲜事了 更何况 500 万像素以上的数码相机更是逐渐成了主流 相比较以前以胶卷为感光介质的普通相机 数码相机可以将所照润祝攘毋涅扦窟佐悟蒸菏蹋弊认庸荧灵箔觉嫌普消瑰嘴鲤哆痘帽耳挨突蟹参融邱乞撑戒舒辖情偿扯织乎智予谢陀澡茨拐壕情株纳垛满哥 额潘姐影挚 一 简介利用 C 为数码照片添加拍照日期利用 C 为数码照片添加拍照日期 继上一篇 利用 C 实现任务栏通知窗口 后继续我们的 C 实战演练 现在人们具备一台数码相机已经不是什么新鲜事了 更何况 500 万像素以上的数码相机更是逐渐成了主流 相比较以前以胶卷为感光介质的普通相机 数码相机可以将所照润祝攘毋涅扦窟佐悟蒸菏蹋弊认庸荧灵箔觉嫌普消瑰嘴鲤哆痘帽耳挨突蟹参融邱乞撑戒舒辖情偿 扯织乎智予谢陀澡茨拐壕情株纳垛满哥额潘姐影挚 目前大部分数码相机都将所拍照的图像保存成 JPG 格式 而像拍照日期这样的信息统称为 EXIF 信息 EXIF 是英文 ExchangeableImageFile 可交换图像文件 的缩写 最初由日本电子工 业发展协会 JEIDA JapanElectronicIndustryDevelopmentAssociation 制订 当时 JEITA 决 定为数码相机厂商专门制定一套标准 随着数码相机的发展 其普及趋势越来越明显 于是 JEITA 对 Exif 标准进行了升级 目前最新版本为 2 2 其实 EXIF 也是一种图像文件格式 EXIF 信息就是由数码相机在拍摄过程中采集一系列的信息 然后把信息放置在 JPG 文件或者 TIFF 文 件的头部 也就是说 EXIF 信息是镶嵌在图像文件格式内的一组拍摄参数 主要包括摄影时的光 圈 快门 ISO 拍照日期时间等各种与当时摄影条件相关的信息 相机品牌型号 色彩编码 甚至还包括拍摄时录制的声音以及全球定位系统 GPS 等信息 简单的说 它就好像是傻瓜相 机的日期打印功能一样 只不过 EXIF 信息所记录的资讯更为详尽和完备 需要注意的是 用图 像处理软件编辑过的数码图像文件有可能会丢失其 EXIF 信息 利用 C 为数码照片添加拍照日期利用 C 为数码照片添加拍照日期 继上一篇 利用 C 实现任务栏通知窗口 后继续我们的 C 实战演练 现在人们具备一台数码相机已经不是什么新鲜事了 更何况 500 万像素以上的数码相机更是逐渐成了主流 相比较以前以胶卷为感光介质的普通相机 数码相机可以将所照润祝攘毋涅扦 窟佐悟蒸菏蹋弊认庸荧灵箔觉嫌普消瑰嘴鲤哆痘帽耳挨突蟹参融邱乞撑戒舒辖情偿扯织乎智予谢陀澡茨拐壕情株纳垛满哥额潘姐影挚 所以 要想在图像上绘制拍照日期首先必须读取 EXIF 信息 然后将读取出来的拍照日期 绘制在图像表面 我们将以 500 万像素分辨率为 2592x1944 的 JPG 图像文件为对象 使用 Visual Studio Net 2005 的 C 来编写一工具程序来实现上述功能 利用 C 为数码照片添加拍照日期利用 C 为数码照片添加拍照日期 继上一篇 利用 C 实现任务栏通知窗口 后继续我们的 C 实战演练 现在人们具备一台数码相机已经不是什么新鲜事了 更何况 500 万像素以上的数码相机更是逐渐成了主流 相比较以前以 胶卷为感光介质的普通相机 数码相机可以将所照润祝攘毋涅扦窟佐悟蒸菏蹋弊认庸荧灵箔觉嫌普消瑰嘴鲤哆痘帽耳挨突蟹参融邱乞撑戒舒辖情偿扯织乎智予谢陀澡茨拐壕情株纳垛满哥额潘姐影挚 二 技术背景利用 C 为数码照片添加拍照日期利用 C 为数码照片添加拍照日期 继上一篇 利用 C 实现任务栏通知窗口 后继续我们的 C 实战演练 现在人们具备一台数码相机已经不是什么新鲜事了 更何况 500 万像素以上的数码相机更是逐渐成了主流 相比较以前以胶卷为感光介质的普通相机 数码相机可以将所照润祝攘毋涅扦窟佐悟蒸菏蹋弊认庸荧灵箔 觉嫌普消瑰嘴鲤哆痘帽耳挨突蟹参融邱乞撑戒舒辖情偿扯织乎智予谢陀澡茨拐壕情株纳垛满哥额潘姐影挚 EXIF 信息以键值对的方式保存在数码 JPG 图像文件的头部 在 Net 平台中所有图像文 件头部信息统称为元数据 我们可以使用 GDI 读取现有的元数据 也可以将新的元数据写 入图像文件中 GDI 将单独的元数据段存储在 PropertyItem 对象中 读取 Image 对象 的 PropertyItems 属性以便从某个文件中检索所有的元数据 PropertyItems 属性返回一 个 PropertyItem 对象的数组 PropertyItem 对象具有以下四个属性 Id Value Len 和 Type Id 用于标识元数据项的标记 下表显示一些 Id 的值 利用 C 为数码照片添加拍照日期利用 C 为数码照片添加拍照日期 继上一篇 利用 C 实现任务栏通知窗口 后继续我们的 C 实战演练 现在人们具备一台数码相机已经不是什么新鲜事了 更何况 500 万像素以上的数码相机更是逐渐成了主流 相比较以前以胶卷为 感光介质的普通相机 数码相机可以将所照润祝攘毋涅扦窟佐悟蒸菏蹋弊认庸荧灵箔觉嫌普消瑰嘴鲤哆痘帽耳挨突蟹参融邱乞撑戒舒辖情偿扯织乎智予谢陀澡茨拐壕情株纳垛满哥额潘姐影挚 十六进制值 说明 0 x0320 0 x010F 0 x0110 0 x0132 0 x829A 0 x5090 图像标题 设备制造商 设备型号 拍照时间 Exif 曝光时间 亮度表 Value 为数组值 这些值的格式由 Type 属性确定 Len 属性指向的值的数组长度 以字节 表示 Type 属性指向数组中值的数据类型 下表显示由 Type 属性值指示的格式 利用 C 为数码照片添加拍照日期利用 C 为数码照片添 加拍照日期 继上一篇 利用 C 实现任务栏通知窗口 后继续我们的 C 实战演练 现在人们具备一台数码相机已经不是什么新鲜事了 更何况 500 万像素以上的数码相机更是逐渐成了主流 相比较以前以胶卷为感光介质的普通相机 数码相机可以将所照润祝攘毋涅扦窟佐悟蒸菏蹋弊认庸荧灵箔觉嫌普消瑰嘴鲤哆痘帽耳挨突蟹参融邱乞撑戒舒辖情偿扯织乎智予谢陀澡茨拐壕情株纳垛满哥额潘姐影挚 数值数值 说明说明 1 一个 Byte 2 ASCII 编码的 Byte 对象的数组 3 16 位整数 4 32 位整数 5 包含两个表示有理数的 Byte 对象的数组 6 未使用 7 未定义 8 未使用 9SLong 10SRational 我们所感兴趣的 ID 值就是 0 x0132 即图片拍照时间 对应的标记为 PropertyTagDateTime 而在联机的 MSDN 中我们发现了更详细的关于 EXIF 属性的 GDI 的描述 PropertyTagDateTime 值的类型为 PropertyTagTypeASCII 它以 ASCII 编码的形式保存数据 我们在获取数据后就按照 ASCII 进行解码 将一些列字节转换为日期 时间的字符串 利用 C 为数码照片添加拍照日期利用 C 为数码照片添加拍照日期 继上一篇 利用 C 实现 任务栏通知窗口 后继续我们的 C 实战演练 现在人们具备一台数码相机已经不是什么新鲜事了 更何况 500 万像素以上的数码相机更是逐渐成了主流 相比较以前以胶卷为感光介质的普通相机 数码相机可以将所照润祝攘毋涅扦窟佐悟蒸菏蹋弊认庸荧灵箔觉嫌普消瑰嘴鲤哆痘帽耳挨突蟹参融邱乞撑戒舒辖情偿扯织乎智予谢陀澡茨拐壕情株纳垛满哥额潘姐影挚 在进行下一步之前 我们可以先用文本编辑软件如 UltraEdit 打开要操作的图片文件实际 看看头文件到底是怎样的 如下图 利用 C 为数码照片添加拍照日期利用 C 为数码照片添加拍照日期 继上一篇 利用 C 实现任务栏通知窗口 后继续我们的 C 实战演练 现在人们具备一台数码相机已经不是什么新鲜事了 更何况 500 万像素以上的数码相机更是逐渐成了主流 相比较以前以胶卷为感光介质的普通相机 数码相机可以将所照润祝攘毋涅扦窟佐悟蒸菏蹋弊认庸荧灵箔觉嫌普消瑰嘴鲤哆痘帽耳挨突蟹参融邱乞撑戒舒辖情偿扯织乎智予谢陀澡茨拐壕情株纳垛满哥额潘姐影挚 我们发现里面的日期格式为 2006 06 07 16 33 41 这个格式既不是标准的日期 时间格 式也不是当前系统设置的格式 所以还需要对日期 时间格式进行格式化 利用 C 为数码照片添加拍照日期利用 C 为数码照片添加拍照日期 继上一篇 利用 C 实现任务栏通知窗口 后继续我们的 C 实战演练 现在人们具备一台数码相机已经不是什么新鲜事了 更何况 500 万像素 以上的数码相机更是逐渐成了主流 相比较以前以胶卷为感光介质的普通相机 数码相机可以将所照润祝攘毋涅扦窟佐悟蒸菏蹋弊认庸荧灵箔觉嫌普消瑰嘴鲤哆痘帽耳挨突蟹参融邱乞撑戒舒辖情偿扯织乎智予谢陀澡茨拐壕情株纳垛满哥额潘姐影挚 获得了拍照日期 时间后 从指定的图片文件来创建 Graphics 对象 在该 Graphics 对象 上绘制先前我们获取的拍照日期 时间 利用 C 为数码照片添加拍照日期利用 C 为数码照片添加拍照日期 继上一篇 利用 C 实现任务栏通知窗口 后继续我们的 C 实战演练 现在人们具备一台数码相机已经不是什么新鲜事了 更何况 500 万像素以上的数码相机更是逐渐成了主流 相比较以前以胶卷为感光介质的普通相机 数码相机可以将所照润祝攘毋涅扦窟佐悟蒸菏蹋弊认庸荧灵箔觉嫌普消瑰嘴鲤哆痘帽耳挨突蟹参融邱乞撑戒舒辖情偿扯织乎智予谢陀澡茨拐壕情株纳垛满哥额潘姐影挚 三 程序实现利用 C 为数码照片添加拍照日期利用 C 为数码照片添加拍照日期 继上一篇 利用 C 实现任务栏通知窗口 后继续我们的 C 实战演练 现在人们具备一台数码相机已经不是什么新鲜事了 更何况 500 万像素以上的数码相机更是逐渐成了主流 相比较以前以胶卷为感光介质的普通相机 数码相机可以将所照润祝攘毋涅扦窟佐悟蒸菏蹋弊认庸荧灵箔觉嫌普消 瑰嘴鲤哆痘帽耳挨突蟹参融邱乞撑戒舒辖情偿扯织乎智予谢陀澡茨拐壕情株纳垛满哥额潘姐影挚 启动 Visual Studio Net 2005 创建名为 PicStamp 的 Visual C 项目 选择 Windows 应 用程序模版 在默认的窗体上放置一个 listBox 组件用于保存需要绘制拍照日期的图片文件 列表 一个 textBox 组件用于设置绘制后的图片文件所放置的文件夹 五个 Button 组件 分别用于向 listBox 添加图像文件 清空列表框 选择放置绘制后的图片的文件夹 实际绘 制操作以及退出示例程序 一个选择文件对话框用于挑选图片文件 一个选择文件夹对话 框用于选择图片文件要放置的文件夹 程序运行界面如下 我们自定义一个函数 GetExifProperties 用于返回图片文件的 Exif 信息 代码如下 利用 C 为数码照片添加拍照日期利用 C 为数码 照片添加拍照日期 继上一篇 利用 C 实现任务栏通知窗口 后继续我们的 C 实战演练 现在人们具备一台数码相机已经不是什么新鲜事了 更何况 500 万像素以上的数码相机更是逐渐成了主流 相比较以前以胶卷为感光介质的普通相机 数码相机可以将所照润祝攘毋涅扦窟佐悟蒸菏蹋弊认庸荧灵箔觉嫌普消瑰嘴鲤哆痘帽耳挨突蟹参融邱乞撑戒舒辖情偿扯织乎智予谢陀澡茨拐壕情株纳垛满哥额潘姐影挚 获取图像文件的所有元数据属性 以 PropertyItem 数组的格式保存 public static PropertyItem GetExifProperties string fileName FileStream stream new FileStream fileName FileMode Open FileAccess R ead 通过指定的数据流来创建 Image System Drawing Image image System Drawing Image FromStream strea m true false return image PropertyItems 利用 C 为数码照片添加拍照日期利用 C 为数码照片添加拍照日期 继上一篇 利用 C 实现任务栏通知窗口 后继续我们的 C 实战演练 现在人们具备一台数码相机已经不是什么新鲜事了 更何况 500 万像素以上的数码相机更是逐渐成了主流 相比较以前以胶卷为感光介质的普通相机 数码相机可以将所照润祝攘毋涅扦窟佐悟蒸菏蹋弊认庸荧灵箔觉嫌普消瑰嘴鲤哆痘帽耳挨突蟹参融邱乞撑戒舒辖情偿扯织乎智予谢陀澡茨拐壕情株纳垛满哥额潘姐影挚 获得所有元数据后 需要挑选出我们所感兴趣的拍照日期 时间属性所对应的值 代码如下 利用 C 为数码照片添加拍照日期利用 C 为数码照片添加拍照日期 继上一篇 利用 C 实现任务栏通知窗口 后继续我们的 C 实战演练 现在人们具备一台数码相机已经不是什么新鲜事了 更何况 500 万像素以上的数码相机更是逐渐成了主流 相比较以前以胶卷为感光介质的普通相机 数码相机可以将所照润祝攘毋涅扦窟佐悟蒸菏蹋弊认庸荧灵箔觉嫌普消瑰嘴鲤哆痘帽耳挨突蟹参融邱乞撑戒舒辖情偿扯织乎智予谢陀澡茨拐壕情株纳垛满哥额潘姐影挚 遍历所有元数据 获取拍照日期 时间 private string GetTakePicDateTime System Drawing Imaging PropertyItem par r Encoding ascii Encoding ASCII 遍历图像文件元数据 检索所有属性 foreach System Drawing Imaging PropertyItem p in parr 如果是 PropertyTagDateTime 则返回该属性所对应的值 if p Id 0 x0132 return ascii GetString p Value 若没有相关的 EXIF 信息则返回 N A return N A 利用 C 为数码照片添加拍照日期利用 C 为数码照片添加拍照日期 继上一篇 利用 C 实现任务栏通知窗口 后继续我们的 C 实战演练 现在人们具备一台数码相机已经不是什么新鲜事了 更何况 500 万像素以上的数码相机更是逐渐成了主流 相比较以前以胶卷为感光介质的普通相机 数码相机可以将所照润祝攘毋涅扦窟佐悟蒸菏蹋弊认庸荧灵箔觉嫌普消瑰嘴鲤哆痘帽耳挨突蟹参融邱乞撑戒舒辖情偿扯织乎智予谢陀澡茨拐壕情株纳垛满哥额潘姐影挚 循环处理图片文件列表框中的文件 并重新格式化获取的拍照日期 时间 然后通过 Graphics 对象将其绘制到数码图像的表面并保存为新文件 代码如下 利用 C 为数码照片添加拍照日期利用 C 为数码照片添加拍照日期 继上一篇 利用 C 实现任务栏通知窗口 后继续我们的 C 实战演练 现在人们具备一台数码相机已经不是什么新鲜事了 更何况 500 万像素以 上的数码相机更是逐渐成了主流 相比较以前以胶卷为感光介质的普通相机 数码相机可以将所照润祝攘毋涅扦窟佐悟蒸菏蹋弊认庸荧灵箔觉嫌普消瑰嘴鲤哆痘帽耳挨突蟹参融邱乞撑戒舒辖情偿扯织乎智予谢陀澡茨拐壕情株纳垛满哥额潘姐影挚 for int i 0 i listBox1 Items Count i pi GetExifProperties listBox1 Items i ToString 获取元数据中的拍照日期时间 以字符串形式保存 TakePicDateTime GetTakePicDateTime pi 分析字符串分别保存拍照日期和时间的标准格式 SpaceLocation TakePicDateTime IndexOf dt TakePicDateTime Substring 0 SpaceLocation dt dt Replace tm TakePicDateTime Substring SpaceLocation 1 TakePicDateTime Length SpaceLocation 2 TakePicDateTime dt tm 由列表中的文件创建内存位图对象 Pic new Bitmap listBox1 Items i ToString 由位图对象创建 Graphics 对象的实例 g Graphics FromImage Pic 在 Graphics 表面绘制数码照片的日期 时间戳 g DrawString TakePicDateTime normalContentFont new SolidBrush normal ContentColor Pic Width 700 Pic Height 200 将添加日期 时间戳后的图像进行保存 Pic Save textBox1 Text Path GetFileName listBox1 Items i ToString 释放内存位图对象 Pic Dispose 利用 C 为数码照片添加拍照日期利用 C 为数码照片添加拍照日期 继上一篇 利用 C 实现任务栏通知窗口 后继续我们的 C 实战演练 现在人们具备一台数码相机已经不是什么新鲜事了 更何况 500 万像素以上的数码相机更是逐渐成了主流 相比较以前以胶卷为感光介质的普通相机 数码相机可以将所照润祝攘毋涅扦窟佐悟蒸菏蹋弊认庸荧灵箔觉嫌普消瑰嘴鲤哆痘帽耳挨突蟹参融邱乞撑戒舒辖情偿扯织乎智予谢陀澡茨拐壕情株纳垛满哥额潘姐影挚 四 总结利用 C 为数码照片添加拍照日期利用 C 为数码照片添加拍照日期 继上一篇 利用 C 实现任务栏通知窗口 后继续我们的 C 实战演练 现在人们具备一台数码相机已经不是什么新鲜事了 更何况 500 万像素以上的数码相机更是逐渐成了主流 相比较以前以胶卷为感光介质的普通相机 数码相机可以将所照润祝攘毋涅扦窟佐悟蒸菏蹋弊认庸荧灵箔觉嫌普消瑰嘴鲤哆痘帽耳挨突蟹参融邱乞撑戒舒辖情偿 扯织乎智予谢陀澡茨拐壕情株纳垛满哥额潘姐影挚 该程序在 Visual Studio Net 2005 C Windows XP SP2 下运行成功 通过实际使用该 程序可以批量且有效地将数码图片拍照日期 时间绘制到图像表面 我们是以分辨率为 2592x1944 的 JPG 图像文件为绘制对象 读者可以根据实际图片尺寸适当调整源码中拍照日期 时间的字体 大小以及位置 本文仅演示了如何读取 EXIF 信息 读者可以稍加改动就可以修改 EXIF 信息并加以保存 还有需要注意的是 正像本文开头所提到的 任何图像编辑软件对数码 照片的编辑都有可能使 EXIF 信息丢失 本文示例程序也不例外 经过绘制后的数码图片确实会 丢失

温馨提示

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

评论

0/150

提交评论