While I was checking out of the grocery store tonight, I realized I had left my "preferred savings" card in my car's glove compartment as usual. Naturally, my train of thought derailed into Windows Mobile development and how I could make my life easier. The answer was simple: why can't I save all my bar codes into a program and have the cashier scan the image from my cell phone? It would save wallet space and be really cool to boot!
After a quick investigation into how bar codes work, I began coding. The end result is the following:
Above, I have two of my grocery cards entered into my Bar Code manager. In the editor screen, one can enter a bar code number and view it in real time.
The API (BarCode.dll) is simple:
- Create a BarCodeSerializer object.
- Set the DisplayNumber property to your bar code number you want to process.
- Use the IsValid property verify it is a valid 12 digit bar code.
- Use the MakeValid property to make a valid 12 digit bar code from an 11 digit number. Some cards only show 11 of the 12 digits. The 12th is used as a "check" digit.
- Use the CreateBitmap method to create a bitmap of approximately the desired dimensions.
In a possible future release, I might extend the bar code manager to take a picture with a high resolution camera and import a bar code number. That would be an interesting computer vision problem!