PDA

View Full Version : سوال: مشکل در استفاده از اسکنر در برنامه



ma.rad
چهارشنبه 23 آذر 1390, 13:59 عصر
سلام برا استفاده از اسکنر تو برنامه رفرنس Interop.WIA اضافه کردم
using WIA;

بعد تو کلیدی که برا اسکن گذاشتم این کد رو نوشتم:

private void button1_Click(object sender, EventArgs e)
{
const string wiaFormatJPEG = "{B96B3CAE-0728-11D3-9D7B-0000F81EF32E}";
CommonDialogClass wiaDiag = new CommonDialogClass();
WIA.ImageFile wiaImage = null;
wiaImage = wiaDiag.ShowAcquireImage(WiaDeviceType.Unspecified DeviceType, WiaImageIntent.GrayscaleIntent, WiaImageBias.MaximizeQuality, wiaFormatJPEG, true, true, false);
WIA.Vector vector = wiaImage.FileData;
 
Image i = Image.FromStream(new MemoryStream((byte[])vector.get_BinaryData()));
i.Save(@"d:\1.jpeg");
}


اما زمانی که کلیک می کنم این خطا رو میده: Exception from HRESULT: 0x80210015

روی این خط خطا میگیره:

wiaImage = wiaDiag.ShowAcquireImage(WiaDeviceType.Unspecified DeviceType, WiaImageIntent.GrayscaleIntent, WiaImageBias.MaximizeQuality, wiaFormatJPEG, true, true, false);

ma.rad
چهارشنبه 23 آذر 1390, 14:47 عصر
یعنی واقعا کسی بلد نیست ؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟

هیچکسی تو برنامه از اسکنر استفاده نکرده؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟

ma.rad
چهارشنبه 23 آذر 1390, 17:11 عصر
مرسی از این همه استقبال :کف::گیج:

saeid4634
پنج شنبه 24 آذر 1390, 08:33 صبح
سلام دوست عزيز چرا خيلي استفاده شده ولي مشكل اينجاست كه تو سايتو نگشتي.
ويندوزت چيه؟

ma.rad
پنج شنبه 24 آذر 1390, 10:20 صبح
بله تمام تاپیک ها تو این زمینه رو دیدم- هیچ کدوم به نتیجه نرسیده بود
ویندوزم من سون win7
اگه یه نمونه برنامه کوچیک تو سون به همراه کامپوننت بزارید ممنون میشم

charkhkar
پنج شنبه 24 آذر 1390, 10:46 صبح
سلام
دوست عزیز برای استفاده از اسکنر چندین روش وجود داره یک روش برنامه آماده TwainGui هست که سرچ کنی پیداش می کنی که تو تمام ویندوز ها کار می کنه من خودم از همین wia استفاده کردم که فقط تو 7 کار می کنه اگه می خوای کد 2 تاشو برات بنویسم.

ma.rad
پنج شنبه 24 آذر 1390, 11:09 صبح
ممنون میشم کدشو برام بزاری

charkhkar
پنج شنبه 24 آذر 1390, 11:27 صبح
اول یک کلاس بساز

class Scanner
{
Device oDevice;
Item oItem;
CommonDialog oCommonDialog;
public Scanner()
{
oCommonDialog = new CommonDialog();
oDevice = oCommonDialog.ShowSelectDevice(WiaDeviceType.Scann erDeviceType, true, false);
}
public void Scann()
{
oCommonDialog.ShowAcquisitionWizard(oDevice);
}
}


بعد تو برنامه ازش استفاده کن


Scanner oScanner = new Scanner();
oScanner.Scann();



اگه روش TwainGui رو هم می خوای email رو بده برات ارسال کنم.

ahmad estaji
یک شنبه 04 دی 1390, 09:18 صبح
سلام دوست عزیز
متاسفانه بازم مشکل دارم
واین error میده
ahmad_estaji@yahoo.com
79669

charkhkar
دوشنبه 05 دی 1390, 13:25 عصر
سلام
دوست عزیز باید اول فایل assembly refrence رو add کنی Microsift windows image Acquicition library v2.0 از تب com
اگه مشکل حل نشد کد رو بزار برات چکش کنم.
با تشکر.

ahmad estaji
شنبه 10 دی 1390, 13:34 عصر
const string wiaFormatJPEG = "{B96B3CAE-0728-11D3-9D7B-0000F81EF32E}";
CommonDialogClass wiaDiag = new CommonDialogClass();
WIA.ImageFile wiaImage = null;
try

{
wiaImage = wiaDiag.ShowAcquireImage(
WiaDeviceType.UnspecifiedDeviceType,
WiaImageIntent.GrayscaleIntent,
WiaImageBias.MaximizeQuality,
wiaFormatJPEG, true, true, false);
}
catch (Exception e)
{
MessageBox.Show(e.Message.ToString());
}
WIA.Vector vector = wiaImage.FileData;

Image i = Image.FromStream(new MemoryStream((byte[])vector.get_BinaryData()));
i.Save(name);

SilverGold
یک شنبه 11 دی 1390, 17:47 عصر
سلام من تو وی بی نتونستم مشکل رو حل کنم می تونید کمکم کنید

SilverGold
یک شنبه 11 دی 1390, 17:49 عصر
سلام من اومدم با یک نرم افزار مبدل سی شارپ به وی بی تبدیلش کردم
Imports WIA
Imports System.IO.MemoryStream
Imports System.Drawing
Imports System.IO

Public Class Form1

Const wiaFormatJPEG As String = "{B96B3CAE-0728-11D3-9D7B-0000F81EF32E}"
Dim wiaDiag As New CommonDialogClass()
Dim wiaImage As WIA.ImageFile = Nothing
Dim fileName As String = System.IO.Path.GetTempFileName()

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load



wiaImage = wiaDiag.ShowAcquireImage(WiaDeviceType.Unspecified DeviceType, WiaImageIntent.GrayscaleIntent, WiaImageBias.MaximizeQuality, wiaFormatJPEG, True, True, False)

Dim vector As WIA.Vector = wiaImage.FileData
Dim i As Image = Image.FromStream(New MemoryStream(CType(vector.get_BinaryData(), Byte())))

i.Save("d:\1.jpeg")
End Sub


End Class


نگاه کنید به این خط که می رسه ازش عبور می کنه دیگه ادامه نمی ده خیلی ضروری هستش لطف کنید کمکم کنید
Dim i As Image = Image.FromStream(New MemoryStream(CType(vector.get_BinaryData(), Byte())))

ahmad estaji
دوشنبه 12 دی 1390, 12:13 عصر
تو رو خدا کسی نیست جواب بده

nathan
یک شنبه 28 خرداد 1391, 18:48 عصر
با سلام من هم همین ماجرا رو دارم و خطای 0X80210015 رو دارم که به احتمال 99% به علت عدم پشتیبانی 7 از WIA می باشد یا بهتره بگم WIA از XP به بعد مورد بی مهری واقع شده به هرحال اگر من اشتباه می کنم دوستان راهنمائی کنن چون این ماجرا حال همه رو گرفته این ماجرای WIA رو در 7 چی جوری حلش کنیم؟؟؟؟؟//