I have been tasked with integrating image acquisition into a .NET application and I have been looking for an API to use for performing this function. I have come across several "standard" APIs, some have been in existence for a long time, some not so long. I have looked at references to ISIS, TWAIN, WIA, and SANE (said to be mostly *nix). They all appear to be Win32 libraries except for SANE, and I was wondering what the current recommendations are for talking to image acquisition devices (scanners)?
Feel free to recommend something else if you feel it is better. I'm looking for open source options.
Edit: I put open source, when what I actually meant was free. using WIA or TWAIN is fine since they are free even though they are proprietary interfaces.
If your application is using high end scanners and you need to write an app that will maximize your scanners' throughput and take advantage all the advanced features of these scanners, you'll want to take a look at an ISIS based API. I personally have used Captiva's/EMC's PixTools SDK with great success to build an application for a large volume scanning house. The toolkit made it fairly easy to clean up scanned images on the fly using various image processing filters and software. I was also able to easily integrate barcode and patchcode recognition. The toolkit is pricey - about $6k four years ago.
But I suspect your application doesn't require a high end solution. In this case I think you should look at TWAIN. I've never tried it myself, but I understand TWAIN is difficult to work with. A while ago I found an article on CodeProject where the author presents a .NET wrapper for TWAIN:
.NET TWAIN image scanner
I played with it a bit and it seemed to work. Here on SO I found a thread where Luke Quinane refers reader to his Google Code project based on this same article. Here's the link:
Twain Dot Net
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With