Developpez.com - Delphi
X

Choisissez d'abord la catégorieensuite la rubrique :

Comment Numériser un document depuis un scanner ou un appareil photo numérique ?

27 Novembre 2002

Par Atlantis

Comment Numériser un document depuis un scanner ou un appareil photo numérique ?

Qu'est ce que TWAIN ?
TWAIN est une norme pour les logiciels de gestion des appareils d'acquisition d'image (scanner, appareil photo numérique,...) qui est largement utilisée sur les ordinateurs Windows. TWAIN permet d'accéder aux appareils d'acquisition d'image à partir d'un autre programme, par exemple à partir d'une application graphique ou de PAO. Cela signifie qu'au lieu de devoir créer une image de numérisation dans un programme séparé, de la sauvegarder, puis de l'ouvrir dans l'application graphique, l'exploitation du protocole Twain permet d'importer l'image directement dans l'application graphique hôte, ce qui permet de gagner du temps.

Comment exploiter Twain avec Delphi ?
Vous avez 2 solutions à votre disposition :

* Développer un composant en vous appuyant sur les indications du Twain Working Group
* Utiliser un composant dejà existant

Si vous avez choisis la première solution, je vous souhaites bien du courage, et votre parcours sur ce document s'arrêtera ici, sinon pour les autres, vous pouvez télécharger le composant freeware Twainy qui fonctionne parfaitement de Windows 95 à XP.

Utilisation du composant
Une fois le composant installé (si vous ne savez pas installé un composant sous Delphi, vous pouvez consulter l'article  Comment Installer un nouveau composant ? ), vous n'avez plus qu'à le déposer sur votre Form pour exploiter votre périphérique par le biais de l'interface Twain.
Pour comprendre l'utilisation du composant, nous allons développer une application de numérisation d'image. avec les éléments suivants :

  • 1 objet Toolbar avec 2 bouton  
  • 1 objet TImage 
  • 1 objet Twainy 

Source du projet : exempletwain.zip (5 Ko)

Pour choisir la source du numériseur (Scanner ou appareil photo numérique)

Code:

      procedure TForm1.ToolButton1Click(Sender: TObject);
      begin
         Twainy1.SelectSource;
      end;


A l'exécution du code la fenêtre suivante apparait
 


Pour Numériser l'image
Code:

      procedure TForm1.ToolButton2Click(Sender: TObject);
      begin
         Twainy1.Acquire;
      end;


Une fois la demande de numérisation envoyé, votre application Twain prend le relais pour l'acquisition de l'image. L'image est ensuite renvoyé à votre application et stockée dans la propriété ScannedBmp de l'objet Twainy

Pour chaque image numériséePour récupérer l'image et effectuer votre traitement (enregistrement sur le disque, affichage sur un TImage, intégration dans une base de donnée ...), vous devez utiliser l'évènement OnChangeBitmap de votre composant Twainy.

Par exemple, pour afficher le résultat dans un Timage, le code ressemblera à ceci :
Code:

      procedure TForm1.Twainy1ChangeBitmap(Sender: TObject);
      begin
        Image1.Picture.Bitmap := Twainy1.ScannedBmp;
      end;


A noter : Dans le cas ou votre interface twain permet de numériser plusieurs éléments en 1 fois (notamment appareil photo numérique), l'évènement OnChangeBitmap sera déclenché pour chacun de ces éléments.

Responsables bénévoles de la rubrique Delphi : Gilles Vasseur - Alcatîz -