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.
|