Scanner un document par l'interface Twain avec EZTW32.DLL

Programmation d'applications complexes
julien
Messages : 846
Inscription : ven. 30/janv./2004 15:06
Contact :

Scanner un document par l'interface Twain avec EZTW32.DLL

Message par julien »

Salut,

J'essaye de changer la résolution du scanner sans l'intervention de l'utilisateur.


J'arrive à changer la couleur (N&b, RVB...) mais impossible sur la résolution ça reste toujours en 25 DPI.

La capture de mon soft de scan (canon)
Image

Est ce que le code marche chez vous la résolution se met t'elle sur 300 dpi ?


Le code necessiste la DLL EZTW32.DLL que vous pouvez telechargez sur ce lien :
http://purebasic.free.fr/Purebasic/divers/EZTW32.DLL


Merci de votre aide

Code : Tout sélectionner



Procedure scan()


If OpenLibrary(1, "EZTW32.DLL")

CallFunction(1,"TWAIN_SelectImageSource",WindowID()) ; choix du scan boite de dialogue

CallFunction(1,"TWAIN_OpenDefaultSource")

;CallFunction(1,"TWAIN_SetHideUI",1) ; permet de ne pas montrer l'interface




;?
CallFunction(1,"TWAIN_SetCurrentUnits",0) ; 0= DPI

; OK
CallFunction(1,"TWAIN_SetCurrentPixelType",1) ; fonction ok Scan format 0 = B&W, 1 Grey, 2 RGB

;?
CallFunction(1,"TWAIN_SetBitDepth",24) ;Bit Depth 1, 2, 4, 8, 24 but depends on Pixeltype

;Fonctione pas reste à 25 DPI chez moi...
CallFunction(1,"TWAIN_SetCurrentResolution",300) ; en point par pouce ppp (DPI)
; le proble semble venir de cette fonction





CallFunction(1,"TWAIN_AcquireToFilename",WindowID(),"Scan.bmp")



CloseLibrary(1)
Else
MessageRequester("","Impossible d'ouvrir la dll",#MB_ICONERROR)
EndIf


EndProcedure




 
 
 
 
 ;- Window Constants
;
Enumeration
  #Window_0
EndEnumeration


Procedure Open_Window_0()
  If OpenWindow(#Window_0, 229, 97, 543, 307,  #PB_Window_SystemMenu | #PB_Window_SizeGadget | #PB_Window_TitleBar , "Twain")
    If CreateGadgetList(WindowID())
      
    EndIf
  EndIf
EndProcedure


Open_Window_0()
scan()
Repeat ; Start of the event loop
  
  Event = WaitWindowEvent() ; This line waits until an event is received from Windows
  
  WindowID = EventWindowID() ; The Window where the event is generated, can be used in the gadget procedures
  
  GadgetID = EventGadgetID() ; Is it a gadget event?
  
  EventType = EventType() ; The event type
  
  ;You can place code here, and use the result as parameters for the procedures
  
  If Event = #PB_EventGadget
    
  EndIf
  
Until Event = #PB_Event_CloseWindow ; End of the event loop

End
;

DominiqueB
Messages : 47
Inscription : sam. 01/mai/2004 14:41

Si ca peut aider ?

Message par DominiqueB »

Salut,

va jeter un coup d'oeil ici:
http://www.vbfrance.com/codes/SCANNER- ... 6326.aspx

C'est du VB mais ca devrait être facile à comprendre.
Je n'ais pas de scanner pour tester . . .


Dominique
Dominique
julien
Messages : 846
Inscription : ven. 30/janv./2004 15:06
Contact :

Message par julien »

merci, je me suis inspiré de cette source... :D

Code : Tout sélectionner

#                 'parametres du scanner
#                 TWAIN_SetCurrentUnits(0) 'DPI
#                 TWAIN_SetCurrentResolution(150) 'en points par pouces
#                 TWAIN_SetCurrentPixelType(2) ' Scan format 0 = B&W, 1 Grey, 2 RGB
#                 TWAIN_SetBitDepth(8) ' Bit Depth 1, 2, 4, 8 but depends on Pixeltype
#  
#                 TWAIN_SetHideUI(True)
moi, c'est : TWAIN_SetCurrentResolution(150) qui ne veut pas fonctionner sur mon scan....

Qui peut tester le code PB plus haut et me dire si ça fonctionne chez eux (passer le scan à 300 dpi (ou moins))
lionel_om
Messages : 1500
Inscription : jeu. 25/mars/2004 11:23
Localisation : Sophia Antipolis (Nice)
Contact :

Message par lionel_om »

Chez moi ca marche nikel.
Je me suis fais un exécutable ya qq mois et maintenant j'ai plus qu'à lancer cet exe pour acquérir une image (en ayant la passibilité de régler toutes les options de capture)

Problème de driver ou de scanner à mon avis...

Sinon utilise ça : EZ_Twain DLL
Webmestre de Basic-univers
Participez à son extension: ajouter vos programmes et partagez vos codes !
julien
Messages : 846
Inscription : ven. 30/janv./2004 15:06
Contact :

Message par julien »

Je me base sur la même DLL. Mais avec la dll renommer Webcam... j'ai une erreur Twain error outside 4... un truc dans ce genre

Aurait tu un morceaux de code basé sur cette DLL qui permettent de changer les paramètres du scan directement dans l'exe (et non le soft du scan)

merci
lionel_om
Messages : 1500
Inscription : jeu. 25/mars/2004 11:23
Localisation : Sophia Antipolis (Nice)
Contact :

Message par lionel_om »

Non, moi j'utilise le soft du scan et ca marche nikel.
De ce fait, je n'ai pas essayé autrement.
Webmestre de Basic-univers
Participez à son extension: ajouter vos programmes et partagez vos codes !
julien
Messages : 846
Inscription : ven. 30/janv./2004 15:06
Contact :

Message par julien »

lionel_om a écrit :Non, moi j'utilise le soft du scan et ca marche nikel.
De ce fait, je n'ai pas essayé autrement.
Ah ok, j'avais cru comprendre que tu avais un code pour pré-programmer à l'avance la résolution sans passer par l'interface du scan...

Et quand tu essayes le code que j'ai posté, la réolution du scan change t'elle bien automatiquement dans le soft du scan ?


Si qq à un code ou trouve l'erreur...
Répondre