This week I published onto Codeplex my Silverlight PhotoViewer , my third Open Source Project. Using my Fotofly metadata library , this reusable control displays the photo, people regions and a map of the location. You can use it on your own site to light up all that metadata locked in the file. Here’s what the control looks like.
Late last year I set out to completely rewrite the front end of tassography.com based on ASP.Net MVC . Well it’s finally done and now available for everyone’s viewing pleasure. As well as changing the underlying code the most important change I made was a switch to an entirely new SEO -friendly URL schema. Gone are all the ugly, impossible to understand /ViewCollection.aspx?c=20100214 because that’s now /photography/2010-02-14-wandering-around-pier-39 . I’ve also refactored my Silverlight controls into cleaner reusable components. One of the aims I had was to release the photo viewer onto Codeplex to complement my Fotofly metadata library . I’m close to finishing this work and hope to have something to share later this week.
I’ve just published v0.5 of Fotofly on Codeplex . This new version includes the first batch of bug fixes as a result of community feedback. Additionally I’ve started the work to expand the code to deal with multiple GPS sources (exif and xmp). This will be the main focus for v0.6 which I hope to finish sometime this week. I also spent a little time creating a logo. It’s simple but I spent ages rattling through fonts to find something I liked!
It’s been about two months since I posted Fotofly on Codeplex and I’ve had plenty of feedback and it’s been download over 100 times! What I haven’t written is a simple introduction on how to use the library. So that’s the aim of this blog. Step 1 – Download the Library First you need to download the DLL (or download the source code and build it yourself): http://fotofly.codeplex.com/Release/ProjectReleases.aspx Follow this link to download the DLL and save it somewhere you can reference it from your Visual Studio project.
I keep stumbling across the consequences of changing which BitmapCacheOption I use. Despite the fact that metadata in a file isn’t really that big in the grand scheme of things, changing which caching option you use can have annoying consequences. The two typical issues I run into are: running of our memory when process lots of files or not having any data to work with. Let’s look at the code:
In this blog I’m going to explain how Geotagging metadata can be read and written using Windows Imaging Component. First lets look at all the queries. These are the common ones, there are plenty more but I have not found any immediate need to use them.
After several years of evolving my photo metadata code I’m finally ready to put it online. Being the nice corporate citizen that I am, I’m using CodePlex and you can find Fotofly here for download. My somewhat lofty description of the project is: “A comprehensive C# library for reading, manipulating and writing metadata stored in jpg photos using WPF and the Windows Imaging Component. Includes support for Windows Live Photo Gallery People Tags, GPS Coordinates and most EXIF, XMP & IPTC properties.” Hopefully I’ll get lots of downloads and feedback to help improve it further.
Quite why Jeida who created Exif decided to use Rationals is beyond me but they did so you have to work with them if you’re playing with jpg metadata. In this blog post I’ll share my Rational class so you don’t have to go through all the pain I went through in creating it. It’s amusingly short now I look at it here but it took way too long to work it out. The class has two constructors, one for the value you’ve retrieved from BitmapMetadata, the second when you’re creating your own rationals.
In my previous posts I’ve provided examples on using Windows Imaging Component to Read & Write jpg metadata. In this post I’ll explain how to use ContainsQuery , GetQuery , SetQuery and RemoveQuery . As an added bonus I’m going to use the IPTC address fields as my example. Whilst BitmapMetadata does provide some standard properties like Subject and Title, it is far from comprehensive. In order to get at the other data you have to provide the right query.
In this blog I’m going to build on my previous posting on Reading Metadata and explain how to write metadata stored in a jpg file using Windows Imaging Component . You can find all my blogs on Windows Imaging Component here . If you want to change any of the metadata, the first thing you have to do is make sure there’s room for your changes. This is done by adding padding to the metadata. If you don’t do this, I guess it’s possible to remove data or change it to the exact same size but you can’t add new data. The general recommendation appears to be around 5k, so I normally use 5120.
I still see a lot of questions on the Internet and at work on how to read (& write) metadata in Photos. There are plenty of examples out there but they all appear to have some pitfalls. To be quite honest, the code I’ve been using for a number of years now is mature enough that it solves almost all the problems I’ve seen. This blog is the first in a series that document how to read (this blog), write and manipulate photo metadata.
I’ve done my best to make my site ‘indexable’ by Search Engines but I’ve never really tried to optimise it. Martin Peck got me thinking about it more when I shared my analysis of my IIS logs last year. Back then my referrer list looked something like this:
About a year ago, I added a Tag Cloud to allow you to navigate tags associated with the photos on the site, but I’ve never been happy with the algorithm used. I spent some time Friday working out the problems and updating my code. The Problems 1) Tags were distributed across ten buckets, each bucket containing the same number of tags. But even with 1800 tags the frequency isn’t linear.
In my last posting I talked about how Windows Live Photo Gallery (WLPG) stores People tags in XMP. In this post I’m going to extend the Windows Imaging Component code from Robert Wlodarczyk’s Blog to read the data. The code is pretty simple to use, just make sure you have PresentationCore registered in your project and the System.Windows.Media.Imaging namespace.
Since writing Tassography.com tags have been an important part of my workflow. For as long as I can remember I have been using Microsoft’s Digital Image Pro 2006. With the release of the new version of Windows Live Photo Gallery (WLPG), I took this Christmas the time to switch over and take advantage of some of the cool new features. The most compelling new feature for me is the new people tagging capabilities.
It’s a scenario I keep finding myself in, I have two copies of the same photo but I want all metadata changes from one file in the other. For example, I want update my backup with changes I’ve made to metadata but don’t want to touch the source image, or I have the original and a small version of the same file. I haven’t found any reliable way to do this, so I finally sat down and wrote my own using plenty of excellent data on Robert Wlodarczyk’s Blog and the Windows Imaging Component. First, let’s look at the metadata stored in my two files using WICExplorer :