“McGuffin”-Enabling Image Converter

A couple of years ago Robby introduced me to the term “McGuffin”, via this post. In his explanation, he admits that he is probably stretching the original intention of the word, and since I’m now interpreting his interpretation, it may be safe to say that my usage of the term is now far from its original meaning. You be the judge.

If you’re reading this blog, you’re probably also reading Josh Smith‘s blog, and you’re probably aware that I’m working on a new skin for Podder, his WPF podcast reader. Throughout the design process, I’ve had lots of different ideas running through my head – I really have a clean slate to play with here, and any of you who have designed an app or web site from scratch know how challenging that initial blank page can be. There are so many possibilities, so many directions you can take the layout; ultimately, you just have to go with something then tweak until you go crazy. It’s definitely a different process than designing something that works (visually) with an existing product line. There, you have an established aesthetic that drives the design.

So, as I go into the polish stage and really have a feel for the direction the layout is going, I’m looking at ways to make the application feel responsive, alive. One way I’m doing this is through my “McGuffin”-Enabling Image Converter. This converter is bound to an Image’s Source property and then returns an “averaged” Color – I take a random sampling of pixels then average their color values. The resulting color represents the generalized color of the image. In Podder, I’m using this converter to set the background image of the application to a color that works well with the image of the selected podcast, so as the selection changes, the color of the application changes to match, and the plot advances (my McGuffin).

I’ve added this converter to the Infragistic ToyBox assembly that I started a while back (and haven’t actively added to in a while). Download the sample project to see the converter in action. (Note: it currently only works with local images, not images whose source points to a web address).