Visual C++ .NET - escanear imágenes con WIA 1.0

 
Vista:

escanear imágenes con WIA 1.0

Publicado por Emilio (1 intervención) el 28/03/2007 14:13:52
Buscamos un ejemplo de código para guiarnos cómo escanear imágenes usando como interfaz a WIA 1.0
Queremos saber cómo hacer la aplicación para escanear imágenes.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:escanear imágenes con WIA 1.0

Publicado por claudio pardo  (2 intervenciones) el 21/07/2008 16:19:36
1. Imports WIALib
2. Imports System.Runtime.InteropServices
3.
4. Public Class ScannerClass
5. Dim WithEvents WiaManager As WiaClass
6. Dim WiaDevs As CollectionClass
7. Dim WiaRoot As ItemClass
8. Dim WiaPics As CollectionClass
9. Dim WiaItem As ItemClass
10.
11. Dim sTempFile As String
12.
13. Public Event ScanComplete(ByVal sender As Object, ByVal e As ScanEventArgs)
14.
15. Public Function ScanSync() As Bitmap
16. Dim WiaObj As Object
17. Dim SelectUsingUI As Object
18.
19. Dim ST As IO.Stream
20.
21. Dim B As Bitmap
22.
23. WiaManager = New WiaClass()
24. WiaDevs = WiaManager.Devices
25.
26. If WiaDevs Is Nothing Or WiaDevs.Count = 0 Then
27. Exit Function
28. End If
29.
30. WiaRoot = WiaManager.Create(SelectUsingUI)
31. WiaPics = WiaRoot.GetItemsFromUI(WiaFlag.SingleImage, WiaIntent.ImageTypeColor)
32.
33. If WiaPics Is Nothing Then Exit Function
34.
35. For Each WiaObj In WiaPics
36. WiaItem = Marshal.CreateWrapperOfType(WiaObj, GetType(ItemClass))
37. sTempFile = IO.Path.GetTempFileName
38. WiaItem.Transfer(sTempFile, False)
39. ST = IO.File.Open(sTempFile, IO.FileMode.Open)
40. B = Bitmap.FromStream(ST)
41. ST.Close()
42. If IO.File.Exists(sTempFile) Then IO.File.Delete(sTempFile)
43. Marshal.ReleaseComObject(WiaObj)
44. Exit For
45. Next
46.
47. 'WiaObj = Nothing
48. SelectUsingUI = Nothing
49.
50. ST = Nothing
51.
52. Return B
53. End Function
54.
55. Public Sub ScanAsync()
56.
57. Dim WiaObj As Object
58. Dim SelectUsingUI As Object
59.
60.
61. WiaManager = New WiaClass()
62. WiaDevs = WiaManager.Devices
63.
64. If WiaDevs Is Nothing Or WiaDevs.Count = 0 Then
65. Exit Sub
66. End If
67.
68. WiaRoot = WiaManager.Create(SelectUsingUI)
69. WiaPics = WiaRoot.GetItemsFromUI(WiaFlag.SingleImage, WiaIntent.ImageTypeColor)
70.
71. If WiaPics Is Nothing Then Exit Sub
72.
73. For Each WiaObj In WiaPics
74. WiaItem = Marshal.CreateWrapperOfType(WiaObj, GetType(ItemClass))
75. sTempFile = IO.Path.GetTempFileName
76. WiaItem.Transfer(sTempFile, True)
77. Exit For
78. Next
79.
80. WiaObj = Nothing
81. SelectUsingUI = Nothing
82.
83. End Sub
84.
85. Private Sub WiaManager_OnTransferComplete(ByVal Item As WIALib.Item, ByVal Path As String) Handles WiaManager.OnTransferComplete
86. Dim ST As IO.Stream
87. Dim B As Bitmap
88.
89. ST = IO.File.Open(sTempFile, IO.FileMode.Open)
90. B = Bitmap.FromStream(ST)
91. ST.Close()
92. ST = Nothing
93.
94. If IO.File.Exists(sTempFile) Then IO.File.Delete(sTempFile)
95. Marshal.ReleaseComObject(Item)
96.
97. RaiseEvent ScanComplete(Me, New ScanEventArgs(B))
98.
99.
100. End Sub
101.
102. End Class
103. Public Class ScanEventArgs
104. Inherits EventArgs
105.
106. Dim MyImage As Bitmap
107.
108. Public ReadOnly Property Image() As Bitmap
109. Get
110. Return MyImage
111. End Get
112. End Property
113.
114. Public Sub New(ByVal Img As Bitmap)
115. MyImage = Img
116.
117. End Sub
118. End Class
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:escanear imágenes con WIA 1.0

Publicado por claudio pardo  (2 intervenciones) el 21/07/2008 16:19:50
1. Imports WIALib
2. Imports System.Runtime.InteropServices
3.
4. Public Class ScannerClass
5. Dim WithEvents WiaManager As WiaClass
6. Dim WiaDevs As CollectionClass
7. Dim WiaRoot As ItemClass
8. Dim WiaPics As CollectionClass
9. Dim WiaItem As ItemClass
10.
11. Dim sTempFile As String
12.
13. Public Event ScanComplete(ByVal sender As Object, ByVal e As ScanEventArgs)
14.
15. Public Function ScanSync() As Bitmap
16. Dim WiaObj As Object
17. Dim SelectUsingUI As Object
18.
19. Dim ST As IO.Stream
20.
21. Dim B As Bitmap
22.
23. WiaManager = New WiaClass()
24. WiaDevs = WiaManager.Devices
25.
26. If WiaDevs Is Nothing Or WiaDevs.Count = 0 Then
27. Exit Function
28. End If
29.
30. WiaRoot = WiaManager.Create(SelectUsingUI)
31. WiaPics = WiaRoot.GetItemsFromUI(WiaFlag.SingleImage, WiaIntent.ImageTypeColor)
32.
33. If WiaPics Is Nothing Then Exit Function
34.
35. For Each WiaObj In WiaPics
36. WiaItem = Marshal.CreateWrapperOfType(WiaObj, GetType(ItemClass))
37. sTempFile = IO.Path.GetTempFileName
38. WiaItem.Transfer(sTempFile, False)
39. ST = IO.File.Open(sTempFile, IO.FileMode.Open)
40. B = Bitmap.FromStream(ST)
41. ST.Close()
42. If IO.File.Exists(sTempFile) Then IO.File.Delete(sTempFile)
43. Marshal.ReleaseComObject(WiaObj)
44. Exit For
45. Next
46.
47. 'WiaObj = Nothing
48. SelectUsingUI = Nothing
49.
50. ST = Nothing
51.
52. Return B
53. End Function
54.
55. Public Sub ScanAsync()
56.
57. Dim WiaObj As Object
58. Dim SelectUsingUI As Object
59.
60.
61. WiaManager = New WiaClass()
62. WiaDevs = WiaManager.Devices
63.
64. If WiaDevs Is Nothing Or WiaDevs.Count = 0 Then
65. Exit Sub
66. End If
67.
68. WiaRoot = WiaManager.Create(SelectUsingUI)
69. WiaPics = WiaRoot.GetItemsFromUI(WiaFlag.SingleImage, WiaIntent.ImageTypeColor)
70.
71. If WiaPics Is Nothing Then Exit Sub
72.
73. For Each WiaObj In WiaPics
74. WiaItem = Marshal.CreateWrapperOfType(WiaObj, GetType(ItemClass))
75. sTempFile = IO.Path.GetTempFileName
76. WiaItem.Transfer(sTempFile, True)
77. Exit For
78. Next
79.
80. WiaObj = Nothing
81. SelectUsingUI = Nothing
82.
83. End Sub
84.
85. Private Sub WiaManager_OnTransferComplete(ByVal Item As WIALib.Item, ByVal Path As String) Handles WiaManager.OnTransferComplete
86. Dim ST As IO.Stream
87. Dim B As Bitmap
88.
89. ST = IO.File.Open(sTempFile, IO.FileMode.Open)
90. B = Bitmap.FromStream(ST)
91. ST.Close()
92. ST = Nothing
93.
94. If IO.File.Exists(sTempFile) Then IO.File.Delete(sTempFile)
95. Marshal.ReleaseComObject(Item)
96.
97. RaiseEvent ScanComplete(Me, New ScanEventArgs(B))
98.
99.
100. End Sub
101.
102. End Class
103. Public Class ScanEventArgs
104. Inherits EventArgs
105.
106. Dim MyImage As Bitmap
107.
108. Public ReadOnly Property Image() As Bitmap
109. Get
110. Return MyImage
111. End Get
112. End Property
113.
114. Public Sub New(ByVal Img As Bitmap)
115. MyImage = Img
116.
117. End Sub
118. End Class
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:escanear imágenes con WIA 1.0

Publicado por martin martin (1 intervención) el 07/01/2009 21:25:21
Quisiera saber como recuperar los icono Wia, ya que estos de`pues de usar la camara se desaparecieron.- Muchas gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar