Twain : numériser un document depuis un scanner ou un appareil photo numérique

Soyez le premier à donner votre avis sur cette source.

Vue 41 576 fois - Téléchargée 2 861 fois

Description

TWAIN définit un standard utilisé par les développeurs de logiciels et par les fabricants de matériels pour développer des applications ou du matériel compatibles.
Le standard est défini par l'organisation TWAIN. Ces représentants provienent de fabricants majeurs de produits logiciel et matériel.
Grâce à la technologie TWAIN, vous pouvez acquérir les images d'un scanner, d'un appareil photo numérique ou d'une webcam.

Dans cette exemple qui illustre TWAIN, nous utiliserons l'unité MultiTWAIN (77 Ko) qui est freeware contrairement à beaucoup de composants. Un exemple est déjà fournit avec mais il est assez compliqué à comprendre. J'ai donc refait un exemple pour acquérir une image issue d'une source (appareil photo , webcam, scanner) que vous sélectionnez.

Ajouter un composant TButton et TImage.

Source / Exemple :


Uses MultiTWAIN;

procedure TForm1.Button1Click(Sender: TObject);
Var ImgTmp:TImage;
n:Integer;
TestDib:HBitmap;
begin
ImgTmp:=TImage.Create(Self);
TWAIN_SelectImageSource(0);
TWAIN_AcquireNative(0,0);
n:=TWAIN_GetNumDibs;
if n>=1 then
begin
TestDib:=TWAIN_GetDib(0);
CopyDibIntoImage(TestDib,ImgTmp);
TWAIN_FreeNative(TestDib);
Image1.Picture.Bitmap.Width:=ImgTmp.Width;
Image1.Picture.Bitmap.Height:=ImgTmp.Height;
Image1.Picture:=ImgTmp.Picture;
end;
end;

Conclusion :


Plus d'information sur : http://delphipage.free.fr/

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

kacola
Messages postés
30
Date d'inscription
jeudi 27 mai 2004
Statut
Membre
Dernière intervention
10 janvier 2008
-
Où peut-on trouver une aide ou des explications sur les fonctions et procédures du composant TWAIN?
Merci beaucoup.
tonkaroto
Messages postés
3
Date d'inscription
lundi 25 août 2003
Statut
Membre
Dernière intervention
11 février 2005
-
j'ai une erreur, en fait quand je lance le programme
il fait une acces violation adresse 0000..
c'est au moment ou il essaye de creer la fenetre de selection de source :
HWND CreateProxyWindow(void)
{
HWND hwnd;
hwnd = CreateWindow("STATIC", // class
"Acquire Proxy", // title
WS_POPUPWINDOW | WS_VISIBLE, // style
CW_USEDEFAULT, CW_USEDEFAULT, // x, y
CW_USEDEFAULT, CW_USEDEFAULT, // width, height
HWND_DESKTOP, // parent window
NULL, // hmenu
hinstLib, // hinst
NULL); // lpvparam
return hwnd;
} // CreateProxyWindow

y a t il quelque chose que j'ai pas installé ??
cs_MAURICIO
Messages postés
2233
Date d'inscription
mardi 10 décembre 2002
Statut
Modérateur
Dernière intervention
15 décembre 2014
5 -
Salut Tonkaroto, j' ai le même problème que toi.
Dans button1click remplace le code par le suivant:

procedure TForm1.Button1Click(Sender: TObject);
Var ImgTmp:TImage;
n:Integer;
TestDib:HBitmap;
begin
ImgTmp:=TImage.Create(Self);
TWAIN_SelectImageSource(Form1.Handle); //Affichage de la boite de dialogue de sélection de la source
TWAIN_AcquireNative(Form1.Handle,0); //Acquérit l'image
n:=TWAIN_GetNumDibs; //Récupère le nombre d'image acquérit
if n>=1 then
begin
TestDib:=TWAIN_GetDib(0); //Handle de la source
CopyDibIntoImage(TestDib,ImgTmp); //Tansforme l'image DIB en Bitmap
TWAIN_FreeNative(TestDib); //Libère la mémoire
//Affiche dans "Image1" l'image "ImgTmp"
Image1.Picture.Bitmap.Width:=ImgTmp.Width;
Image1.Picture.Bitmap.Height:=ImgTmp.Height;
Image1.Picture:=ImgTmp.Picture;
end;
end;

A+
Stephane_menard
Messages postés
13
Date d'inscription
lundi 13 juin 2005
Statut
Membre
Dernière intervention
11 mai 2006
-
Salut,

bonne source, j'arrive à acquérir de n'importe quel scanner.

Par contre je n'arrive pas à récupérer la résolution ou à la passer en utilisant les outils 'TWAIN_GetCurrentResolution' et 'TWAIN_SetCurrentResolution'.

Une idée ?

Merci.
kacola
Messages postés
30
Date d'inscription
jeudi 27 mai 2004
Statut
Membre
Dernière intervention
10 janvier 2008
-
Bonjour,
Merci beaucoup pour votre code, il marche impec chez moi.
Mais j'ai besoin de votre aide:
Je souhaite scanner avec toujours les mêmes paramètres :
* Chargeur de document ( et pas plateau)
* A5
* 300 dpi
* Noir et blanc
* luminosité -10
Est-il possible de ne pas faire apparaître la boîte de dialogue et d'utiliser directement tous ces paramètres ?

Merci de votre aide.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.