سلام من مي خواهم تصويري را از اسکنر خوانده و در بانک ذخيره کنم
اگر کسي کامپوننت کار با اسکنر در C# را دارد لطفا کمک کند
ممنون
سلام من مي خواهم تصويري را از اسکنر خوانده و در بانک ذخيره کنم
اگر کسي کامپوننت کار با اسکنر در C# را دارد لطفا کمک کند
ممنون
معروفترین dll که برای scanning وجود دارد و اکثر نرم افزار های scan از آن استفاده می کنند twain است:
http://www.twain.org/downloads.shtm
Developer Toolkit و specification را از آدرس بالا می توانید download کنید، از Interop برای استفاده از dll بالا در .net استفاده می کنید. مثال اینجا هست:
http://www.codeproject.com/KB/dotnet...x?target=twain
من یک هفته پیش به سئوال شبیه به این جواب دادم و کد هم گذاشتم .
نیازی به کامپوننت های دیگه نیست .
اینم کد :
using System;
using System.Collections.Generic;
using System.Text;
namespace WindowsControlLibrary
{
public class ImageAcquisition
{
private WIALib.WiaClass WiaClass;
private WIALib.ItemClass ItemClass;
private WIALib.CollectionClass CollectionClassDevices;
private WIALib.CollectionClass CollectionClassPics;
private object selectUsingUI;
#region SelectDevice
public bool SelectDevice()
{
try
{
WiaClass = new WIALib.WiaClass();
CollectionClassDevices = (WIALib.CollectionClass)WiaClass.Devices;
if (WiaClass.Devices.Count == 0)
return false;
selectUsingUI = System.Reflection.Missing.Value;
ItemClass = (WIALib.ItemClass)WiaClass.Create(ref selectUsingUI);
if (ItemClass == null)
return false;
return true;
}
catch (System.Exception exp)
{
return false;
}
return false;
}
#endregion
#region DeviceSetting
public bool DeviceSetting()
{
try
{
CollectionClassPics = (WIALib.CollectionClass)ItemClass.GetItemsFromUI(W IALib.WiaFlag.SingleImage, WIALib.WiaIntent.MaximizeQuality);
if (CollectionClassPics == null)
return false;
}
catch (System.Exception exp)
{
return false;
}
return true;
}
#endregion
#region Capture
public System.Drawing.Image Capture()
{
try
{
if(CollectionClassPics[0] != null)
{
System.Drawing.Image Image;
WIALib.ItemClass ItemClassCurrent = (WIALib.ItemClass)System.Runtime.InteropServices.M arshal.CreateWrapperOfType(CollectionClassPics[0], typeof(WIALib.ItemClass));
string fileName = System.IO.Path.GetTempFileName();
ItemClassCurrent.Transfer(fileName, false);
Image = System.Drawing.Image.FromFile(fileName);
System.Runtime.InteropServices.Marshal.ReleaseComO bject(CollectionClassPics[0]);
return Image;
}
return null;
}
catch (System.Exception exp)
{
return null;
}
}
#endregion
}
}
براي کار با دات نت به dottwain نياز است ايا کسي آن را با کرک دارد
ممنون
کدی که دوستمون بالا گزاشته کاملا جواب میده . من خودم تست کردم . پیشنهاد می کنم حدالامکان از کرک و این چیزا استفاده نکنبراي کار با دات نت به dottwain نياز است ايا کسي آن را با کرک دارد
ممنون
چون بعد ها دچار اشکال میشی .
موفق باشید.
استخدام برنامه نویس دات نت (Asp.net,C#,jquery,...)
ترجیحا خراسان شمالی ، بجنورد
به صورت پاره وقت و تمام وقت
ارسال اطلاعات و رزومه کاری به Job@tosa.ir
private WIALib.WiaClass WiaClass;
private WIALib.ItemClass ItemClass;
private WIALib.CollectionClass CollectionClassDevices;
private WIALib.CollectionClass CollectionClassPics;
اين WIALIB از چه Reference ي است آيا مال خود fcl است
آخرین ویرایش به وسیله Mahmoud.Afrad : یک شنبه 29 اسفند 1395 در 19:13 عصر
شما Add Refrence کنید . به نظرم تو قسمت COM باشه :
Microsoft Windows Image Acquisition 1.01 Type Library
خيلي ممنون از شما.
يه سوال ديگه
آيا شبيه سازي براي اسکنر است که کار آن را انجام دهد آخه من الان دسترسي به اسکنر ندارم
اگه کمک کنيد ممنون مي شم
سلام
کسی می دونه چه جوری می تونم از این کلاس استفاده کنم؟؟؟؟؟
خوب مثل اینکه یه ایرادی تو این کلاس که گذاشتم بوده و درست کار نمیکرده . من یه نمونه اصلاح شده می زارم که الان هم خودم ازش استفاده می کنم کاملاً جواب میده :
public class ImageAcquisition
{
private WIALib.WiaClass WiaClass;
private WIALib.ItemClass ItemClass;
private WIALib.CollectionClass CollectionClassDevices;
private WIALib.CollectionClass CollectionClassPics;
#region SelectDevice
public bool SelectDevice()
{
try
{
object selectUsingUI;
WiaClass = new WIALib.WiaClass();
CollectionClassDevices = (WIALib.CollectionClass)WiaClass.Devices;
if (WiaClass.Devices.Count == 0)
return false;
selectUsingUI = System.Reflection.Missing.Value;
ItemClass = (WIALib.ItemClass)WiaClass.Create(ref selectUsingUI);
if (ItemClass == null)
return false;
return true;
}
catch (System.Exception exp)
{
return false;
}
}
#endregion
#region Capture
public System.Drawing.Image Capture()
{
try
{
CollectionClassPics = ItemClass.GetItemsFromUI(WIALib.WiaFlag.SingleImag e, WIALib.WiaIntent.ImageTypeColor) as WIALib.CollectionClass;
if (CollectionClassPics == null)
return null;
ItemClass = (WIALib.ItemClass)System.Runtime.InteropServices.M arshal.CreateWrapperOfType(CollectionClassPics[0], typeof(WIALib.ItemClass));
string imageFileName = System.IO.Path.GetTempFileName();
ItemClass.Transfer(imageFileName, false);
System.Drawing.Image Image = System.Drawing.Image.FromFile(imageFileName);
System.Runtime.InteropServices.Marshal.ReleaseComO bject(CollectionClassPics[0]);
return Image;
}
catch (System.Exception exp)
{
return null;
}
}
#endregion
}
این هم رش استفاده :
ImageAcquisition ImageAcquisition = new ImageAcquisition();
ImageAcquisition.SelectDevice();
this.pictureBox.Image = ImageAcquisition.Capture();
سلام
من از این کلاس استفاده کرد م ولی اسکنر منو تشخیص نداد
براي اينكه اين name Space را بشناسه چه چيزي را بايد به refrence اضافه كنم ؟؟؟؟
اين ارور را ميده
The type or namespace name 'WIALib' could not be found (are you missing a using directive or an assembly reference?
این هم Refrence :
Microsoft Windows Image Acquisition 1.01 Type Library
سلام دوست عزيز ميشه يكم بيشتر توضيح بدي با اينكه اگه برات مقدرو يك مثال برام بذاري؟
سلام
من از gdtwain استفاده کردم اکثر اسکنر ها را تشخیص می ده کار هم باهاش خیلی راحته
پیشنهاد می کنم از همین استفاده کنی
ImageAcquisition ImageAcquisition = new ImageAcquisition();سلام من هر چی تو toolbox می گردم picturebox رو پیدا نمی کنم
ImageAcquisition.SelectDevice();
this.pictureBox.Image = ImageAcquisition.Capture();
از کجا باید بیارمش؟؟؟
در ضمن من چه جوری می تونم اندازه عکس اسکن شده رو به 200*200 تغییر بدم؟؟
سلام دوستان من می خوام این کار رو با وب اپلیکیشن انجام بدم تقریبا هم انجام شده ولی وقتی اجرا می کنم اسکنر شروع به کار می کنه ولی چیزی نشون نمیده اینم کدم
System.Windows.Forms.PictureBox pic = new System.Windows.Forms.PictureBox();
ImageAcquisition img = new ImageAcquisition();
img.SelectDevice();
pic.Image = img.Capture();
آخرین ویرایش به وسیله morteza_1234m : جمعه 07 اسفند 1388 در 22:04 عصر
سلام دوستان.
Microsoft Windows Image Acquisition 1.01 Type Library توی ویندوز 7 همچین dll ای وجود نداره. برای استفاده و کار با اسکنر توی 7 چه کارباید بکنم ؟ممنون.
فایلش اینه نمیدونم ممکنه رو ویندوز شما جواب نده
ممنو ن از جوابت دوست عزیز. ولی مشکلی که هست اینه که وقتی می خوام این dll که دادی رو توی Refrences اضافه کنم خطا میده و نمیزاره Add بشه خطاشم اینه :
this is not a valid assembly or com component.
از دوستان کسی نمی تونه فایلی که حاوی این کد هست بزاره تا ببنم چطویر باید اجرا بشه؟ممنون
ميشه بيشتر توضيح بدين
دوستان اگه پروژه شما كامل شد بزاريد تا ماهم استفاده كنيم !
سلام به همه دوستان.
من دارم با ویندوز ویستا کار می کنم و اصلا فضای نام WIALib را نمیشناسه.به جای اون فضای نام WIA را داریم که با اضافه به پروژه و تغییر قطعه کد فوق با WIA خیلی از آبجکت ها را نمیشناسه.من یه قطعه کد پیدا کردم به صورت زیر
WIA.CommonDialog dlg = new WIA.CommonDialog();
Device dvc = dlg.ShowSelectDevice(WiaDeviceType.ScannerDeviceTy pe, true, false);
if (dvc != null)
{
dlg.ShowAcquisitionWizard(dvc);
}ولی با اجرای برنامه با خطای زیر مواجه میشم ،
Exception from HRESULT: 0x80210015
ممنون میشم اگه دوستان برای حل این خطا راهنمایی کنن
آخرین ویرایش به وسیله m.shahriari : جمعه 05 شهریور 1389 در 12:47 عصر دلیل: این پست به دلیل تکراری بودن به طور خودکار ادغام شده است.
با سلام خدمت اساتید
من یه جا خوندم برای استفاده از اسکنر باید dll ، مربوط به wia یعنی wiaaut.dll رو دانلود و رجیستر کنی. این کار رو کردم و برنامه رو اجرا کردم و خطایی که دوستمون بالا اشاره کرد یعنی Exception from HRESULT: 0x80210015 رو داد جستجو کردم فهمیدم اسکنرم با این روش سازگاری نداره
مدل اسکنرم canon lide60 هست.
از روش این تاپیک هم استفاده کردم وقتی فراخونی می کنم هیچ اتفاقی نمیفته دیگه خطا هم نمیده dll
Microsoft Windows Image Acquisition 1.01 Type Library رو از روشی که گفته شده بود که داخل خود visual s. اوردم.
سلام خدمت دوستان عزیز :
من این کد رو تو یه سمپل برای دوستان آماده کردم ، با اسکنر Genius خودم هم بدون مشکل کار میکنه امیدوارم مشکل هاتون رو حل کنه .
دوست عزيزاين سمپل در ويندوز xp و در همه مدل اسكنري جواب ميده يا نه در win7 چطور ؟
مثلا چاپگر 4 كاره اچ پي كه اسكن هم داره اين كد ها جواب ميده .
يه سوال ديگه ، اسكنر مجازي هم وجود داره ؟ آخه خودم اسكنر ندارم و مشتري اسكنر خودشو به من نميده
يك برگه a4 را اسكن ميكنيم آيا ميشه يك قطعه كوچك از وسط صفحه را برش كرد ؟
من یک اسکنر دارم که امکان اسکن کردن چندین صفحه رو داره کامپوننت یا برنامه ای میخوام که اینها رو تبدیل به یک فایل pdf بکنه
اینجا همه نمونه کدی برای اسکنر هست
http://www.dynamsoft.com/Downloads/....-Download.aspx
هم برای windows form هم برای wpf
برای کار با اسکنر تحت وب هم می تونید از این استفاده کنید
http://www.dynamsoft.com/Samples/DWT...load_Demo.html
آخرین ویرایش به وسیله ashkufaraz : یک شنبه 29 اسفند 1395 در 21:22 عصر