<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.technet.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Exploring Photographic EXIF data (using PowerShell, of course)</title><link>http://blogs.technet.com/b/jamesone/archive/2007/07/13/exploring-photographic-exif-data-using-powershell-of-course.aspx</link><description>My PowerShell project for the last few days has been to get into the EXIF data which is embedded in Pictures. It turns out to be a bit easier than I imagined. The first thing I found is that the . NET framework has a "BITMAP" object-class which gives</description><dc:language>en-US</dc:language><generator>Telligent Evolution Platform Developer Build (Build: 5.6.50428.7875)</generator><item><title>re: Exploring Photographic EXIF data (using PowerShell, of course)</title><link>http://blogs.technet.com/b/jamesone/archive/2007/07/13/exploring-photographic-exif-data-using-powershell-of-course.aspx#1575439</link><pubDate>Sat, 21 Jul 2007 20:14:16 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:1575439</guid><dc:creator>James ONeill</dc:creator><description>&lt;p&gt;I nearly answered the first one before I answered the second. &lt;/p&gt;
&lt;p&gt;There's a list of fields that Windows desktop search understands here &lt;a rel="nofollow" target="_new" href="http://www.microsoft.com/technet/scriptcenter/topics/desktop/wdsprops.mspx"&gt;http://www.microsoft.com/technet/scriptcenter/topics/desktop/wdsprops.mspx&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Exiftool is very cool - Phil seems to be the definitive compiler of vendor specific data. I ended up with Exifutils from &lt;a rel="nofollow" target="_new" href="http://www.hugsan.com"&gt;http://www.hugsan.com&lt;/a&gt; which also works well; but if I had got into Perl I would have go for Exiftool instead. &lt;/p&gt;
&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=1575439" width="1" height="1"&gt;</description></item><item><title>re: Exploring Photographic EXIF data (using PowerShell, of course)</title><link>http://blogs.technet.com/b/jamesone/archive/2007/07/13/exploring-photographic-exif-data-using-powershell-of-course.aspx#1556094</link><pubDate>Thu, 19 Jul 2007 10:44:24 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:1556094</guid><dc:creator>Melissa</dc:creator><description>&lt;p&gt;I just played with exiftool (&lt;a rel="nofollow" target="_new" href="http://www.sno.phy.queensu.ca/~phil/exiftool/"&gt;http://www.sno.phy.queensu.ca/~phil/exiftool/&lt;/a&gt;), and it pulled out more than 150 separate pieces of information out of the EXIF data for that photo, so clearly there is plenty of stuff that both Spotlight and Windows Desktop Search miss. &amp;nbsp;I also get the difference between focal length and 35mm focal length now (duh!).&lt;/p&gt;
&lt;p&gt;It's a cool tool. Written in Perl for easy programmatic access, cross-platform too, and so it runs happily in Windows. &amp;nbsp;It seems like it groks everything you could imagine, and makes it easy to do modifications like fixing times for those occasions when you forgot to adjust the clock on your camera.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=1556094" width="1" height="1"&gt;</description></item><item><title>re: Exploring Photographic EXIF data (using PowerShell, of course)</title><link>http://blogs.technet.com/b/jamesone/archive/2007/07/13/exploring-photographic-exif-data-using-powershell-of-course.aspx#1555931</link><pubDate>Thu, 19 Jul 2007 10:07:56 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:1555931</guid><dc:creator>Melissa</dc:creator><description>&lt;p&gt;Actually, the focal length is in there:&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp;kMDItemFocalLength = 18.633&lt;/p&gt;
&lt;p&gt;although admittedly, it's hard to see it in with all the other metadata. &amp;nbsp;I don't know whether there are obscure EXIF tags that the Spotlight importer ignores, but it's certainly possible. &amp;nbsp;I can tell you all the metadata tags listed for images in Apple's documentation, which presumably get pulled from EXIF when possible, namely:&lt;/p&gt;
&lt;p&gt;kMDItemAcquisitionMake, kMDItemAcquisitionModel, kMDItemAlbum, kMDItemAperture, kMDItemBitsPerSample, kMDItemColorSpace, kMDItemEXIFVersion, kMDItemExposureMode, kMDItemExposureProgram, kMDItemExposureTimeSeconds, kMDItemExposureTimeString, kMDItemFNumber, kMDItemFlashOnOff, kMDItemFocalLength, kMDItemHasAlphaChannel, kMDItemISOSpeed, kMDItemLayerNames, kMDItemMaxAperture, kMDItemMeteringMode, kMDItemOrientation, kMDItemPixelHeight, kMDItemPixelWidth, kMDItemProfileName, kMDItemRedEyeOnOff, kMDItemResolutionHeightDPI, kMDItemResolutionWidthDPI and kMDItemWhiteBalance&lt;/p&gt;
&lt;p&gt;(taken from the Spotlight Metadata Attributes reference, at &lt;a rel="nofollow" target="_new" href="http://developer.apple.com/documentation/Carbon/Reference/MetadataAttributesRef/index.html"&gt;http://developer.apple.com/documentation/Carbon/Reference/MetadataAttributesRef/index.html&lt;/a&gt;).&lt;/p&gt;
&lt;p&gt;Thanks for the pointer to your earlier article. &amp;nbsp;It's cool that Windows now has something like Spotlight's Query Expression Syntax (see &lt;a rel="nofollow" target="_new" href="http://developer.apple.com/documentation/Carbon/Conceptual/SpotlightQuery/Concepts/QueryFormat.html"&gt;http://developer.apple.com/documentation/Carbon/Conceptual/SpotlightQuery/Concepts/QueryFormat.html&lt;/a&gt;). &amp;nbsp;&lt;/p&gt;
&lt;p&gt;BTW, in that earlier article, was that all the metadata Windows keeps, or did you cut it down to a subset to reduce clutter?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=1555931" width="1" height="1"&gt;</description></item><item><title>re: Exploring Photographic EXIF data (using PowerShell, of course)</title><link>http://blogs.technet.com/b/jamesone/archive/2007/07/13/exploring-photographic-exif-data-using-powershell-of-course.aspx#1526402</link><pubDate>Sun, 15 Jul 2007 22:45:07 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:1526402</guid><dc:creator>James ONeill</dc:creator><description>&lt;p&gt;The Equivalent for Windows is the Windows desktop search iFilter for JPEGs, and that puts all the properties into the Windows index (see &lt;a rel="nofollow" target="_new" href="http://blogs.technet.com/jamesone/archive/2007/07/10/vista-s-desktop-index-and-powershell.aspx"&gt;http://blogs.technet.com/jamesone/archive/2007/07/10/vista-s-desktop-index-and-powershell.aspx&lt;/a&gt; for an example about how I get the properties out from there).&lt;/p&gt;
&lt;p&gt;However the are some properties which are there in the exif that are not there in the index (e.g spotlight's filter doesn't put in 35mm equivalent focal length - the windows ifilter doesn't put in ... [memory fails me] some fields.&lt;/p&gt;
&lt;p&gt;Which you'd use ... well it depends on the circumstances : and I haven't quite finished with this one :-) &lt;/p&gt;
&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=1526402" width="1" height="1"&gt;</description></item><item><title>re: Exploring Photographic EXIF data (using PowerShell, of course)</title><link>http://blogs.technet.com/b/jamesone/archive/2007/07/13/exploring-photographic-exif-data-using-powershell-of-course.aspx#1521031</link><pubDate>Sat, 14 Jul 2007 19:54:37 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:1521031</guid><dc:creator>Melissa</dc:creator><description>&lt;p&gt;I'm enjoying your series on Powershell (it's cool that Windows finally has a good shell), but wow, that seems like a lot of work.&lt;/p&gt;
&lt;p&gt;On OS X, the EXIF data is imported by the Spotlight importer for JPEGs. &amp;nbsp;I can list all the metadata (see example below) and get at individual parts pretty trivially.&lt;/p&gt;
&lt;p&gt;But, if I wanted to fiddle with EXIF data, I'd probably use something like jhead (&lt;a rel="nofollow" target="_new" href="http://www.sentex.net/~mwandel/jhead/"&gt;http://www.sentex.net/~mwandel/jhead/&lt;/a&gt;) or exiftags (&lt;a rel="nofollow" target="_new" href="http://johnst.org/sw/exiftags/"&gt;http://johnst.org/sw/exiftags/&lt;/a&gt;). &amp;nbsp;They're both free and even have Windows binaries.&lt;/p&gt;
&lt;p&gt;Here's the output from mdls ~/Pictures/TestPic.jpg&lt;/p&gt;
&lt;p&gt;/Users/melissa/Pictures/TestPic.jpg -------------&lt;/p&gt;
&lt;p&gt;kMDItemAcquisitionMake &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; = &amp;quot;Canon&amp;quot;&lt;/p&gt;
&lt;p&gt;kMDItemAcquisitionModel &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;= &amp;quot;Canon PowerShot SD700 IS&amp;quot;&lt;/p&gt;
&lt;p&gt;kMDItemAperture &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;= 4.65625&lt;/p&gt;
&lt;p&gt;kMDItemAttributeChangeDate &amp;nbsp; &amp;nbsp; = 2007-07-14 09:31:24 -0700&lt;/p&gt;
&lt;p&gt;kMDItemBitsPerSample &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; = 32&lt;/p&gt;
&lt;p&gt;kMDItemColorSpace &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;= &amp;quot;RGB&amp;quot;&lt;/p&gt;
&lt;p&gt;kMDItemContentCreationDate &amp;nbsp; &amp;nbsp; = 2007-07-14 09:31:23 -0700&lt;/p&gt;
&lt;p&gt;kMDItemContentModificationDate = 2007-07-14 09:31:23 -0700&lt;/p&gt;
&lt;p&gt;kMDItemContentType &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; = &amp;quot;public.jpeg&amp;quot;&lt;/p&gt;
&lt;p&gt;kMDItemContentTypeTree &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; = (&amp;quot;public.jpeg&amp;quot;, &amp;quot;public.image&amp;quot;, &amp;quot;public.data&amp;quot;, &amp;quot;public.item&amp;quot;, &amp;quot;public.content&amp;quot;)&lt;/p&gt;
&lt;p&gt;kMDItemDisplayName &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; = &amp;quot;TestPic.jpg&amp;quot;&lt;/p&gt;
&lt;p&gt;kMDItemEXIFVersion &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; = &amp;quot;2.2&amp;quot;&lt;/p&gt;
&lt;p&gt;kMDItemExposureMode &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;= 0&lt;/p&gt;
&lt;p&gt;kMDItemExposureTimeSeconds &amp;nbsp; &amp;nbsp; = 0.0025&lt;/p&gt;
&lt;p&gt;kMDItemFlashOnOff &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;= 0&lt;/p&gt;
&lt;p&gt;kMDItemFocalLength &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; = 18.633&lt;/p&gt;
&lt;p&gt;kMDItemFSContentChangeDate &amp;nbsp; &amp;nbsp; = 2007-07-14 09:31:23 -0700&lt;/p&gt;
&lt;p&gt;kMDItemFSCreationDate &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;= 2007-07-14 09:31:23 -0700&lt;/p&gt;
&lt;p&gt;kMDItemFSCreatorCode &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; = 0&lt;/p&gt;
&lt;p&gt;kMDItemFSFinderFlags &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; = 1024&lt;/p&gt;
&lt;p&gt;kMDItemFSInvisible &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; = 0&lt;/p&gt;
&lt;p&gt;kMDItemFSIsExtensionHidden &amp;nbsp; &amp;nbsp; = 0&lt;/p&gt;
&lt;p&gt;kMDItemFSLabel &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; = 0&lt;/p&gt;
&lt;p&gt;kMDItemFSName &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;= &amp;quot;TestPic.jpg&amp;quot;&lt;/p&gt;
&lt;p&gt;kMDItemFSNodeCount &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; = 0&lt;/p&gt;
&lt;p&gt;kMDItemFSOwnerGroupID &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;= 20&lt;/p&gt;
&lt;p&gt;kMDItemFSOwnerUserID &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; = 501&lt;/p&gt;
&lt;p&gt;kMDItemFSSize &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;= 1409646&lt;/p&gt;
&lt;p&gt;kMDItemFSTypeCode &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;= 0&lt;/p&gt;
&lt;p&gt;kMDItemHasAlphaChannel &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; = 0&lt;/p&gt;
&lt;p&gt;kMDItemID &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;= 2799798&lt;/p&gt;
&lt;p&gt;kMDItemKind &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;= &amp;quot;JPEG Image&amp;quot;&lt;/p&gt;
&lt;p&gt;kMDItemLastUsedDate &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;= 2007-07-14 09:31:23 -0700&lt;/p&gt;
&lt;p&gt;kMDItemOrientation &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; = 0&lt;/p&gt;
&lt;p&gt;kMDItemPixelHeight &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; = 2112&lt;/p&gt;
&lt;p&gt;kMDItemPixelWidth &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;= 2816&lt;/p&gt;
&lt;p&gt;kMDItemProfileName &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; = &amp;quot;sRGB Profile&amp;quot;&lt;/p&gt;
&lt;p&gt;kMDItemRedEyeOnOff &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; = 0&lt;/p&gt;
&lt;p&gt;kMDItemResolutionHeightDPI &amp;nbsp; &amp;nbsp; = 180&lt;/p&gt;
&lt;p&gt;kMDItemResolutionWidthDPI &amp;nbsp; &amp;nbsp; &amp;nbsp;= 180&lt;/p&gt;
&lt;p&gt;kMDItemUsedDates &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; = (2007-07-14 09:31:23 -0700)&lt;/p&gt;
&lt;p&gt;kMDItemWhiteBalance &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;= 0&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=1521031" width="1" height="1"&gt;</description></item></channel></rss>