Seite 1 von 2

mehrere Seiten Scannen - erkennen

Verfasst: 16.01.2012 10:05
von Then
MorGÄHN !!!

Ich möchte gerne etwas einscannen... klappt ja auch, aber ich möchte mit dem Einzugsscanner mehrere Blätter hintereinander scannen, aber ich bekomme nur das Bild der ersten Seite... wo sind die anderen ??

Auszug aus dem Code :

Code: Alles auswählen

 woLib.l=LoadLibraryM(?dll) 
 If woLib
  *out = GetProcAddressM(woLib,"ScanToClip") 
  CallFunctionFast(*out,1) 
 EndIf
FreeLibraryM(woLib)

CreateImage(149,2100,2970)
 UseImage(149)

StartDrawing(ImageOutput())
 DrawImage(GetClipboardData(#CF_BITMAP),0,0,2100,2970) 
StopDrawing()

Re: mehrere Seiten Scannen - erkennen

Verfasst: 18.01.2012 15:57
von Then
Weiß denn keiner Rat ?? Ich scanne 2 Seiten ein und die müssten doch im Clipboard sein, ich bekomme aber immer nur 1 Seite ausgegeben.... wieso ist das so ??

Re: mehrere Seiten Scannen - erkennen

Verfasst: 18.01.2012 16:23
von ts-soft
Then hat geschrieben:Weiß denn keiner Rat ??
Hellseher gesucht? Kein Mensch weiß welche DLL Du nutzt und welche Funktionalität diese hat.
In das Clipboard geht definitiv nur ein Bild zur selben Zeit, aber das ist nicht der Fehler, weil
es ja das letzte wäre und nicht das erste.

Deinem Code kann ich nur entnehmen, das es sich um 32-Bit Windows handelt, mehr Infos sehe
ich dort nicht.

Gruß
Thomas

Re: mehrere Seiten Scannen - erkennen

Verfasst: 18.01.2012 16:52
von Then
Jo... also es ist die bekannte TwScann.dll, die glaube ich jeder nimmt. Betriebssystem ist Windows XP 32 Bit (was genau spielt das für ne Rolle)

Sendet denn der Scanner ein Bit um zu signalisieren, daß ein neues Bild da ist ?? Wie machen es andere Einzugsscanner Programme ? Irgendwie müssen die doch erkennen, dass eine neue seite da ist...

Re: mehrere Seiten Scannen - erkennen

Verfasst: 18.01.2012 17:15
von ts-soft
Ich denke mal, die von Dir genannte DLL wird das nicht unterstützen.
Die Funktionalität die Du benötigst wird wohl nur mit der zum Scanner
gelieferten Software zur Verfügung stehen, bin mir da aber nicht Sicher.

PB scheint ja auch noch eine 3-er Version zu sein /:->

Ich kann Dir leider nicht helfen und allzu große Hoffnungen, das es jemand
anders kann, würde ich mir auch nicht machen.

Gruß
Thomas

Re: mehrere Seiten Scannen - erkennen

Verfasst: 18.01.2012 17:43
von Then
Ja, ist leider noch die 3.93er Version.... das Programm ist so umfangreich mit 14000 Zeilen, da las ich den Code lieber. Bisher hat es auch immer gereicht mit 1 Seite, jedoch ist nun das ganze so "gewachsen" dass ich mehrere Seiten benötige. Gibts da nicht ein Tool dass ich per Shell unsichtbar starten kann ?? Ich frag mal Herrn Google ! Dennoch danke !

Re: mehrere Seiten Scannen - erkennen

Verfasst: 18.01.2012 17:51
von ts-soft
Kannst Du denn über ein Grafik-Programm mehrere Seiten Scannen?
Wenn das der Fall ist, sollte es auch eine entsprechende Windows-API
geben. Wenn das nicht geht, vergiß das ganze am besten.

Re: mehrere Seiten Scannen - erkennen

Verfasst: 18.01.2012 18:45
von pureuwe
Hallo,

vielleicht über Kommandozeilenparameter von irfanview die Seiten wieder zu einem Dokument zusammenfügen.

Gruß
Uwe

Re: mehrere Seiten Scannen - erkennen

Verfasst: 18.01.2012 19:22
von Derren
Ähm.
Dein Code scannt eine Seite dann wird die library wieder geschlossen.

Code: Alles auswählen


SeitenAnzahl.l = 4

woLib.l=LoadLibraryM(?dll)
If woLib
  *out = GetProcAddressM(woLib,"ScanToClip")


For n = 1 To SeitenAnzahl

CallFunctionFast(*out,1)
CreateImage(n,2100,2970)
UseImage(n)
StartDrawing(ImageOutput())
DrawImage(GetClipboardData(#CF_BITMAP),0,0,2100,2970)
StopDrawing()

EndIf
FreeLibraryM(woLib)

So. Keine Ahnung, wie man erkennt, ob noch ein Blatt im Einzug ist, oder nicht.
Ich nehme mal an, dass ScanToClip() 0 oder eine Fehlerkonstante zurückgibt, die du als Abbruch verwenden kannst.

Also hau einfach mal Debug vor das CallFunctionFast() und lass den Code so stehen, leg aber nur 2 Seiten rein.
Dann sollte der Debugger-Output etwas so aussehen.

Große Zahl
Große Zahl
0
0

oder
Große Zahl
Große Zahl
-1
-1

oder
Große Zahl
Große Zahl
negative Große Zahl
negative Große Zahl

Auf jeden Fall sollten die beiden letzten Einträge identisch sein.

Re: mehrere Seiten Scannen - erkennen

Verfasst: 26.01.2012 15:27
von Stuhli
So...jetzt komme auch ich an das Problem. 1 Seite scannen klappt wunderbar, jedoch wenn 2 Seiten drin liegen, meldet das Programm nur zurück, daß es fertig ist mit scannen und holt die letzte Seite aus dem Speicher. Vorher habe ich gar keine Möglichkeit den Speicher abzufragen. Wie kann man erkennen, daß die erste Seite fertig ist und eine 2. folgt...?

Code: Alles auswählen

 woLib.l=LoadLibraryM(?dll) 
 If woLib
  *out = GetProcAddressM(woLib,"ScanToClip") 
  CallFunctionFast(*out,1) 
 EndIf
 FreeLibraryM(woLib)
 CreateImage(149,2100,9000)
  StartDrawing(ImageOutput())
   DrawImage(GetClipboardData(#PB_ClipboardImage),0,0);#CF_BITMAP),0,0)
  StopDrawing()
 SaveImage(149,"H:\Test.bmp")
 FreeLibraryM(woLib)
 End

;- includes
dll:
IncludeBinary "EZTwain.dll"
enDll:
Ja... ist auch ein PB3.9 Code... aber auch unter 4.6 gehts nicht....