PDA

View Full Version : طریقه اسکن کردن تصاویر با WIA در ویندوز 7



BehinAfzar
شنبه 30 بهمن 1389, 21:30 عصر
سلام به دوستان
من در سایت جستجو کردن و کد هایی که پیدا میشد فقط با ویندوز XP کار میکنند در واقع در XP ما DLL به نام WIALib را داریم که در 7 به WIA تبدیل شده است و طریقه کار هم با یکدیگر متفاوت است.

آیا کسی از دوستان تونسته در 7 و با استفاده از WIA عملیات اسکن رو انجام بده ؟
خیلی ضروریه !!!
البته توی اینترنت هم جستجو کردم ولی چیزی پیدا نشد.

ممنون از همکاری دوستان

nima.mehdi
یک شنبه 01 اسفند 1389, 05:25 صبح
دوست عزیز این لینک توضیح کاملی داده است در صورت خطا از .net3.5 استفاده کنید
http://10rem.net/blog/2010/01/08/scanning-images-in-wpf-via-wia

علیرضا حسن زاده
یک شنبه 01 اسفند 1389, 08:16 صبح
بعد از اضافه کردن رفرنس wia2.0 از کد زیر می تونی استفاده کنی(wia 1.0 تو ویندوز 7 کار نمیکنه)

const string wiaFormatJpeg = "{B96B3CAE-0728-11D3-9D7B-0000F81EF32E}";
var wiaDiag = new CommonDialogClass();

ImageFile wiaImage = wiaDiag.ShowAcquireImage(
WiaDeviceType.ScannerDeviceType,
WiaImageIntent.GrayscaleIntent,
WiaImageBias.MaximizeQuality,
wiaFormatJpeg, true, true, false);
if (wiaImage == null) return;
pictureBox1.Image = Image.FromStream(new MemoryStream((byte[]) wiaImage.FileData.get_BinaryData()));
Img = pictureBox1.Image;

BehinAfzar
دوشنبه 02 اسفند 1389, 17:07 عصر
سلام آقای حسن زاده
کد شما درست کار میکنه ولی خط آخری رو نیاز نداره !
اصلا Img رو تعریف نکردین !!!

jejoan
پنج شنبه 12 آبان 1390, 11:44 صبح
سلام آقای حسن زاده ببخشید گفتم ببینم می تونم خود فرم ShowAcquireImage رو هم نشون ندم.برای این کار تنظیمی هستش؟

علیرضا حسن زاده
جمعه 13 آبان 1390, 21:56 عصر
تا جایی که میدونم نمیشه فقط میشه دو پنجره ای که نیاز به دریافت ورودی کاربر داره رو نشون نداد اما پنجره ای که ProgressBar رو نمایش مده نمیشه نمایش نداد
این لینک رو هم ببینید تابع رو توضیح داده (البته شاید توابع دیگه ای باشه که خودکار عملیات مدنظر رو انجام بده ولی من نمیدونم)
http://msdn.microsoft.com/en-us/library/windows/desktop/ms630772(v=vs.85).aspx
برنامه هایی مثل Paint هم که از این کامپوننت استفاده می کنن همین پنجره هارو دارن
شما دلیل خاصی دارین که نمیخواین پنجره باز نشه؟

jejoan
یک شنبه 15 آبان 1390, 23:28 عصر
باسلام
بله آقای حسن زاده همیشه سعی می کنم نرم افزاری که می نویسم حدالامکان فرمهاش کامل فارسی باشه،دراینجا این فرم انگلیسی هست و نظم برنامه رو عوض می کنه البته من جدیدا تونستم این فرم رو هم با کلک رشتی بردارم ولی زیاد جالب نیست:انهم این هست که به محض رسیدن به نشان دادن این فرم زدن کلید enter رو به سیپی یو می فرستم با این تابع زیر:
System.Windows.Forms.SendKeys.Send("\r\n");
به هرحال خیلی ممنون.

navidiran
چهارشنبه 21 دی 1390, 12:09 عصر
هیچ کدوم از این مطالب بدرد نمیخورن. هرچی تلاش میکنم و هرچی جستجو میکنم هیچ نتیجه ای که به جواب برسه بدرد نمیاد. آقایون مدیر میگن تاپیک تازه باز نکنین و اول جستجو کنین. الان من از مدیرها میپرسم لطف کنین خودتون یک جستجو راجع به اسکنر توی سایت بزنین ببینین مطلبی هست که به جواب رسیده باشه؟

جواب = 0

واقعا هیچ کدوم به جواب نرسیدن. چه کار کنم که یک اسکن ساده رو بنویسم واقعا 4تا خطه ولی پر از Error ؟؟؟؟؟؟؟
و اینهم لینک مربوط به اسکنر در قسمت 1001 نکته در سی شارپ که بهتره خود مدیرها ببینن
http://barnamenevis.org/showthread.php?t=88231

navidiran
چهارشنبه 21 دی 1390, 16:57 عصر
مدیران محترم میتونن به این موضوع جوابی ارسال کنند؟

sanjar.amin
چهارشنبه 14 تیر 1391, 14:15 عصر
سلام دوستان .
من تو برنامم از طریق WIA به اسکنر متصل میشم و تصویر و اسکن می‌کنم.
اما مشکل اینجاست که من نمی خام command dialog باز به شه و کاربر بتونه تنظیماتش را تغییر بده . در واقع می‌خواهم Dpi و color format رو از طریق کد نویسی به کامپوننت ارسال کنم. و فقط با زدن یک دکمه روی فرم اصلی تصویر اسکن بشه.
همه تایپیک هارو زیرورو کردم ولی چیزی پیدا نکردم. اګه ممکنه منو کمک کنید.