Search code examples
.netwiascanningtwain

Which is the best .NET image capture API for me to use?


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.


Solution

  • If you are limiting choice to open source, you are limiting yourself to SANE. I doubt there is any other open source library that is close to SANE in terms of device support and compatibility. That said one must mention that SANE is still quite poor in device support compared to proprietary APIs like TWAIN and WIA...

    If open source is not a must have - then the choice depends on the operating system. WIA would be the best solution for Windows XP and newer, TWAIN might be better if you need to support Windows 2000 or 9x (I think TWAIN is also supposed to be cross-platform, even though I don't have any evidence to that right now). Compared to WIA, TWAIN API is horribly outdated though (IMHO), and WIA has stricter requirements on supporting things like batch scanning (which TWAIN leaves to the device manufacturer to support or not).