Join David Gassner for an in-depth discussion in this video Recursing directories and gathering image data, part of Code Clinic: C#.
- Hello, and welcome to Code Clinic. My name is David Gassner. Code Clinic is a monthly course where a unique problem is introduced to a collection of lynda.com authors. In response, each author will create a solution using their programming language of choice. You can learn several things from Code Clinic. Different approaches to solving a problem, the pros and cons of different languages, and some tips and tricks to incorporate into your own coding practices.
This month, the problem combines two concepts: Recursion and accessing image data. Recursion means to repeat something in a similar way. In programming, recursion means a function that calls itself, nesting a call to a subroutine within a call to the same subroutine. You'll see this sort of code in the samples you're about to see from some authors. Sometimes, however, recursion is handled for you by the language or application framework.
It's happening in the background, but your programming job is greatly simplified. The second part of this month's challenge is to extract image data from picture files. JPEG files can contain additional image data stored as standards called EXIF or ITPC. EXIF stands for Exchangeable Image File Format, and is a well-documented standard. If you have a digital camera or have taken photos with a newer cell phone camera, the image probably had EXIF data available.
Using a Mac, you can see this metadata information by opening the image in Preview. Opening Tools and the Show Inspector and selecting the EXIF or IPTC tab. On windows, you can see metadata by right-clicking an image, selecting properties and then the Details tab. You'll see things like caption, dimensions, camera type, color space, exposure information and other details.
Cell phones will also embed geographic location data, identifying the longitude and latitude. This month's challenge is to look through the example files included with Code Clinic. Find images, extract the caption from the metadata, and then reorganize those photos into an alphabetical folder structure based on the caption. As always, you may want to take some time and solve the problem yourself.
In the following videos, I'll show you how I solved this.
David introduces challenges and then provides an overview of his solutions in C#. Challenges include topics such as statistical analysis, searching directories for images, and accessing peripheral devices.
Visit other courses in the series to see how to solve the exact same challenges in languages like C++, Java, PHP, Python, and Ruby.
Skill Level Intermediate
Q: Why can't I access the Lake Pend Orielle site (http://lpo.dt.navy.mil)?
A: The Lake Pend Orielle site is not accessible in some geographical areas. We have contacted the owner of the server to try to resolve this issue.
Q: I am unable to access the Lake Pend Oreille data from outside the U.S.
A: A static copy of this data is provided here for lynda.com members outside of the U.S