Scanner csharp

From Ilianko

Програмен достъп до скенер

TWAIN

TWAIN е програмен интерфейс (API) и комуникционен протокол за управление на комуникацията между софтуeрни приложения и устройства за въвеждане на графична информация ( изображения от скенери, цифрови фотопарати и др.)

TWAIN се разработва от TWAIN Working Group с цел:

  • Осигуряване на съвместимост между графичен софтуер и хардуер
  • Многоплатформена поддръжка (примерно Windows, Mac OS, and Linux)
  • Безплатна поддръжка и разпространение на инструменти за разработчици
  • Насърчаване на употребата на TWAIN
  • и др.


Windows Image Acquisition (WIA)

WIA се разрботва от Microsoft с цел създаване на драйвери и програмен интерфейс за устройства за въвеждане на графична информацияdriver model and application programming interface (API). Разработва се за Windows ME, наличен е като допълнителна библиотека за Windows XP, a в следващите версии е стандартно вграден.

Scanner Access Now Easy (SANE)

SANE е програмен интерфейс, който осигурява стандартизиран достъп до всякакви растерни устраойства - плоски и ръчни скенери, камери и др. SANE API се разработва свободни с отворен лиценз и най-често се използва в Linux.

http://en.wikipedia.org/wiki/Scanner_Access_Now_Easy

http://www.sane-project.org/

Saraff.Twain.Net

Сваляне на библиотеките -> https://sarafftwain.codeplex.com/

Добавяне на twain контролер към toolbox-a:

Десен бутон върху ToolBox менюто -> choose Items -> Browse -> Saraff.Twain.dll

Добавяне на контролера към приложенито


Добавяне на бутон за избор на сканиращо устройство:

private void scanner_Click(object sender, EventArgs e)
{
   this.twain321.CloseDataSource();
   this.twain321.SelectSource();
}

Добавяне на бутон за сканиране:

private void scanButton_Click(object sender, EventArgs e)
{
  this.twain321.Acquire();
}

Да се добави Panel

properties->autoscroll->true

Да се добави PictureBox в панела

properties->size->autosize

Добавяне на събитие при завършване на сканирането

private void twain321_AcquireCompleted(object sender, EventArgs e)
{
  if (twain321.ImageCount > 0)
  {
     pictureBox1.Image = twain321.GetImage(0);
  }
}