My family recently went to the Microsoft Company Picnic, where we met with a friend’s family to enjoy the amenities.

 

I took some pictures of our kids, and I emailed a link to the pictures to my friend. The link shows a page with the picture thumbnails. Clicking on the thumbnail displays the original picture. That’s far easier than carefully choosing negatives to bring to the photo dept of a store.

 

He said “Pretty cool.  How’d you do that?”

 

A while ago I wrote a program (in Visual FoxPro, of course) that allows me to query all my digital pictures from anywhere on the internet. (it’s supposed to be secure, so only I can access it<g>). VFP has a very fast powerful built-in database engine that includes a very powerful SQL query engine.

 

I just did a simple query and asked the program to publish the results. In the old days, to get the computer to do something useful, you’d have to run a program (or application). Nowadays, a program can have a browser front end. To use it, just navigate to a particular URL

 

 

I have a simple FoxPro table that has 16,000 digital pictures/movie clips from the last 5 years: 1 record for each picture, including the path to the original file, datetime stamp, and a description. Sounds like a big table? Nahh… it’s barely the size of 3 digital photos!

 

 

Every month or so, I run a program that helps me to fill in the description for the month’s photos. It displays the picture or movie, and allows several keyboard shortcuts to copy from prior photo’s description, for people’s names, etc.

 

To query the data, I just navigate to a query page and type in a search word, much like using Google. (One minor problem is that I have both a brother and a neighbor named “Duncan”. Who would have thought?<g>). The web page then does a SQL statement and returns thumbnails of the results.

 

If I want to publish the query, I just tell the query program, and it’s published to a publicly accessible URL.

 

Creating thumbnails is pretty simple using the Image::GetThumbnailImage Method of GDI+.

 

 

Some cameras put a date stamp right onto the image itself. I like that for family shots, so I can easily tell how old the kids were.

 

My Canon doesn’t do that, so I wrote a simple program that puts any text in any color on the picture. I like the date/time and even day of week on the photo itself. I just call the Graphics::DrawString Method of GDI+

 

(Using the Image::GetPropertyItem Method of GDI+ it’s also easy to query various picture properties, such as aperture, shutter speed, flash, metering mode, camera model, image resolution, etc.)

 

My home screensaver is just a simple FoxPro program that just randomly displays pictures from the entire database of 16,000.

 

Much better than a physical photo album!

 

About 2 years ago, I wrote and presented a paper about my pictures. Here’s a link to the paper. This is the abstract:

 

You can learn to use the power of Visual FoxPro to take your data and publish it to .NET. With a sample database of 8000 photographs, I'll first show the power of VFP as a front-end rich client to handle the images from your camera. Then we'll create a simple VFP COM server and query the data from simple Visual Basic .NET and C# .NET applications. I'll demonstrate how to use a VFP XML Web service and a COM server using ASP.NET and .NET WinForms to publish your digital images.