تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
شرح - سحب الصور بأستخدام الماسح الضوئي (السكانر ) image scan
#1
كاتب الموضوع : SUB NEW

السلام عليكم
التعامل مع جهاز المسح الضوئي (السكانر ) image scan أو مع الكاميرات



أولاً وقبل كل شيء يجب إضافة المرجعية Interop.WIALib.dll
وقمت بوضعها في المرفقات

لأستيراد المرجعية نقوم بذلك من قائمة Project ثم Add Reference ونضغط على تبويب Browse ونقوم بالبحث عن الملف الذي ذكر سابقاً Interop.WIALib.dll (الملف موجود في المجلد المضغوط في المرفقات )


بعدها نقوم بأستيراد مجالات الأسماء التالية



كود :
Imports WIALib
Imports System
Imports System.Drawing
Imports System.Collections
Imports System.ComponentModel
Imports System.Windows.Forms
Imports System.Data
Imports System.IO
Imports System.Runtime.InteropServices
نضع في التصميم
أداة PictureBox1 و زر Button1 (وهو زر أمر السحب )

نتابع بالأكواد ونضيف في التصريحات العامة



كود :
Private imageFileName As String
ثم وفي حدث الكليك على الزر Button1 نضع كود الماسح الضوئي


كود :
Dim wiaManager As WiaClass = Nothing
Dim wiaDevs As CollectionClass = Nothing
Dim wiaRoot As ItemClass = Nothing
Dim wiaPics As CollectionClass = Nothing
Dim wiaItem As ItemClass = Nothing
Try
wiaManager = New WiaClass()
wiaDevs = TryCast(wiaManager.Devices, CollectionClass)
If (wiaDevs Is Nothing) OrElse (wiaDevs.Count = 0) Then
MessageBox.Show(Me, "No WIA devices found!", "WIA", MessageBoxButtons.OK, MessageBoxIcon.[Stop])
Application.[Exit]()
Exit Sub
End If
Dim selectUsingUI As Object = System.Reflection.Missing.Value
wiaRoot = DirectCast(wiaManager.Create(selectUsingUI), ItemClass)
If wiaRoot Is Nothing Then
Exit Sub
End If

wiaPics = TryCast(wiaRoot.GetItemsFromUI(WiaFlag.SingleImage, WiaIntent.ImageTypeColor), CollectionClass)
If wiaPics Is Nothing Then
Exit Sub
End If
Dim takeFirst As Boolean = True
For Each wiaObj As Object In wiaPics
If takeFirst Then

wiaItem = DirectCast(Marshal.CreateWrapperOfType(wiaObj, GetType(ItemClass)), ItemClass)
imageFileName = Path.GetTempFileName()
Cursor.Current = Cursors.WaitCursor
Me.Refresh()
wiaItem.Transfer(imageFileName, False)
PictureBox1.Image = Image.FromFile(imageFileName)


takeFirst = False
End If
Marshal.ReleaseComObject(wiaObj)
Next
Catch ee As Exception
MessageBox.Show(Me, "Acquire from WIA Imaging failed" & vbCr & vbLf & ee.Message, "WIA", MessageBoxButtons.OK, MessageBoxIcon.[Stop])
Application.[Exit]()
Finally
If wiaItem IsNot Nothing Then
Marshal.ReleaseComObject(wiaItem)
End If
If wiaPics IsNot Nothing Then
Marshal.ReleaseComObject(wiaPics)
End If
If wiaRoot IsNot Nothing Then
Marshal.ReleaseComObject(wiaRoot)
End If
If wiaDevs IsNot Nothing Then
Marshal.ReleaseComObject(wiaDevs)
End If
If wiaManager IsNot Nothing Then
Marshal.ReleaseComObject(wiaManager)
End If
Cursor.Current = Cursors.[Default]
End Try
End Sub
المكتبة كما ذكرت سابقاً موجودة في المرفقات
تمت تجربتها على vb.net2008 لا أستطيع الجزم بعملها على vs2003 or vs2005

تحياتى واحترامى للجميع وبالتوفيق


الملفات المرفقة
.zip   Interop.WIALib.zip (الحجم : 8.15 ك ب / التحميلات : 2,358)
}}}


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  طريقة تحويل الصور الملونه الي صور ابيض واسود RaggiTech 0 3,921 17-10-12, 08:43 PM
آخر رد: RaggiTech
  ضغط الصور إلى الهيئة jpeg RaggiTech 0 1,858 17-10-12, 06:00 PM
آخر رد: RaggiTech
  عمل Render لل image علي زرار بال C# و VB.net RaggiTech 0 1,757 17-10-12, 05:12 PM
آخر رد: RaggiTech
  الاضافه و الغاء الصور من خلال ImageList بال C# و VB.net RaggiTech 0 3,101 17-10-12, 04:50 PM
آخر رد: RaggiTech

التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم