Page 1 sur 1

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

Publié : sam. 20/mai/2006 15:31
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
;


Si ca peut aider ?

Publié : sam. 20/mai/2006 17:18
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

Publié : sam. 20/mai/2006 18:33
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))

Publié : dim. 21/mai/2006 12:45
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

Publié : dim. 21/mai/2006 15:28
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

Publié : lun. 22/mai/2006 9:17
par lionel_om
Non, moi j'utilise le soft du scan et ca marche nikel.
De ce fait, je n'ai pas essayé autrement.

Publié : lun. 22/mai/2006 18:17
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...