我正在编写一个使用ImageMagick的C#shell应用程序。我想获取EXIF DateTimeOriginal
字段,以便我可以解析并重新格式化JPEG的时间戳日期和时间。最好的方法是什么?
一些其他信息:我使用.NET Process
类来驱动ImageMagick,我可以使用Process
类的输出流重定向ImageMagick的输出。我无法弄清楚的是如何调用ImageMagick来返回DateTimeOriginal数据。
提前感谢您的帮助。
答案 0 :(得分:2)
您可以使用-format
命令行参数和相应选项来DateTimeOriginal
这样identify -format "%[EXIF:DateTimeOriginal]"
请参阅http://www.imagemagick.org/script/escape.php
您也可以使用.NET内置类Image
来完成这类工作 - 请参阅http://msdn.microsoft.com/en-us/library/system.drawing.image.aspx
答案 1 :(得分:1)
如果您设置ProcessStartInfo.RedirectStandardOutput = true
,则可以使用output = p.StandardOutput.ReadLine();
之类的内容读取流程的输出。如果您执行identify -format "%[EXIF:DateTimeOriginal]"
作为命令行的一部分,您将获得output
字符串中的数据。
答案 2 :(得分:0)
应该可以使用.NET Framework中的对象读取那种Exif数据,最值得注意的是使用Image
类和TryGetPropertyItem
方法。
这样您就不需要生成新进程。