نمایش نتایج 1 تا 7 از 7

نام تاپیک: کار با اسکنر

  1. #1
    کاربر دائمی آواتار navidiran
    تاریخ عضویت
    مرداد 1388
    محل زندگی
    ارومیه
    پست
    239

    کار با اسکنر

    سلام دوستان. من همه سایتها رو گشتم و مطالبی راجع به موضوع بالا پیدا کردم که اینجا میخوام کمکم کنید جمع بندی کنم.
    من هیچ پیش زمینه درباره کار با اسکنر نداشتم و فکر میکردم میتونم خودم کدی برای کار مستقیم با اسکنر تهیه کنم و مدارک یا عکسها رو توسط برنامه خودم از اسکنر بخونم اما الان میبینم اینطور نیست.
    اینطور که من فهمیدم:
    - برای کار با اسکنر از دو یا سه کامپوننت آماده استفاده میکنیم (بدلیل اینکه اسکنرها از درایورهای مشخصی استفاده میکنند) !! ؟؟
    - نمونه این کامپوننتها با نام های twain و Acquisition هستن که یکی از درایورهای مایکروسافت و دیگری نمیدونم کجا!
    - من باید این درایورها رو به پروژه خودم اضافه کنم و کمی باهاشون کار کنم تا جواب گیرم؟

    دوستان توی تمام تاپیکها یک لینک گذاشته شده به یک مطلب و چیز دیگری نمیشه فهمید. از این مطالب میتونید راهنماییم کنید که ایا من مطلب رو درست گرفتم یا در اشتباهم و ممنون میشم اگر راهنماییم کنید.

    در ضمن راهی نیست خودم کامپوننت رو بنویسم؟ چون از کد این کامپوننت ها نمیشه سر درآورد.


  2. #2
    کاربر دائمی آواتار HOJAT1
    تاریخ عضویت
    شهریور 1387
    محل زندگی
    تهران
    سن
    33
    پست
    344

    نقل قول: کار با اسکنر



    try

    {


    string StrPath = System.IO.Directory.GetCurrentDirectory() + "\\Images";

    WIA.
    CommonDialog wiaDlg;

    WIA.
    Device wiaDevice;

    WIA.
    DeviceManager wiaManager = newDeviceManager();

    wiaDlg =
    new WIA.CommonDialog();

    wiaDevice = wiaDlg.ShowSelectDevice(
    WiaDeviceType.ScannerDeviceType, false, false);


    foreach (WIA.Item item in wiaDevice.Items)

    {


    StringBuilder propsbuilder = newStringBuilder();


    foreach (WIA.Property itemProperty in item.Properties)

    {


    IProperty tempProperty; Object tempNewProperty;


    if (itemProperty.Name.Equals("Horizontal Resolution"))

    {

    tempNewProperty = 75; ((
    IProperty)itemProperty).set_Value(ref tempNewProperty);

    }


    else


    if (itemProperty.Name.Equals("Vertical Resolution"))

    {

    tempNewProperty = 75; ((
    IProperty)itemProperty).set_Value(ref tempNewProperty);

    }


    else


    if (itemProperty.Name.Equals("Horizontal Extent"))

    {

    tempNewProperty = 619;

    ((
    IProperty)itemProperty).set_Value(ref tempNewProperty);

    }


    elseif (itemProperty.Name.Equals("Vertical Extent"))

    {

    tempNewProperty = 876;

    ((
    IProperty)itemProperty).set_Value(ref tempNewProperty);

    }

    }


    try

    {


    for (int i = 0; ; i++)

    {




    ImageFile image = (ImageFile)item.Transfer(WIA.FormatID.wiaFormatJPEG);



    image.SaveFile(
    frmMain.pathInitial + "\\Images\\pic" + i + ".jpg");





    }

    }


    catch

    {


    return;

    }

    }

    }


    catch

    {


    MessageBox.Show(" ");


    return;

    }




  3. #3
    کاربر دائمی آواتار علیرضا حسن زاده
    تاریخ عضویت
    تیر 1388
    محل زندگی
    تــــــــــــــــــــــــــبریز
    پست
    877

    نقل قول: کار با اسکنر

    توجه داشته باشید که در ویندوز 7 نمی تونید از Wia 1.0 استفاده کنید(کد بالا برایWia 1.0 هست)
    از Wia 2.0 استفاده کند که برای 7 هست و با نصبش تو XP هم می تونی استفاده کنی کد کمتری هم نیاز داره

  4. #4

    نقل قول: کار با اسکنر

    Microsoft Windows Image Acquisition Library v2.0
    const string wiaFormatJPEG = "{B96B3CAE-0728-11D3-9D7B-0000F81EF32E}";
    CommonDialogClass wiaDiag = new CommonDialogClass();
    WIA.ImageFile wiaImage = null;

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

    WIA.Vector vector = wiaImage.FileData;

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

  5. #5
    کاربر دائمی آواتار navidiran
    تاریخ عضویت
    مرداد 1388
    محل زندگی
    ارومیه
    پست
    239

    نقل قول: کار با اسکنر

    نقل قول نوشته شده توسط علیرضا حسن زاده مشاهده تاپیک
    توجه داشته باشید که در ویندوز 7 نمی تونید از Wia 1.0 استفاده کنید(کد بالا برایWia 1.0 هست)
    از Wia 2.0 استفاده کند که برای 7 هست و با نصبش تو XP هم می تونی استفاده کنی کد کمتری هم نیاز داره
    متاسفانه من هنوز مفهوم Wia رو نگرفتم چه برسه به 1 یا 2 بودنش.
    دوستان اگه نخوام از کدهای Wia استفاده کنم چیکار کنم. مشکلم اینه.

  6. #6
    کاربر دائمی آواتار navidiran
    تاریخ عضویت
    مرداد 1388
    محل زندگی
    ارومیه
    پست
    239

    نقل قول: کار با اسکنر

    یافتم. دوستان کافی بود یکی لطف کنه و بگه: در قسمت Add refrence گزینه Microsoft windows image Aquisition رو به پروژه اضافه باید کرد.!!!!!!!!!!!!!!!!!!!

  7. #7
    منتظر تایید آدرس ایمیل
    تاریخ عضویت
    آذر 1387
    محل زندگی
    تهران
    پست
    848

    نقل قول: کار با اسکنر

    دوست عزیز؛ برای راحتی کار مراحل زیر انجام شده
    تمامی سازندگان اسکنر برای ویندوز ؛ درایور ارائه کرده اند
    ویندوز با یک فایل COM ؛ قابلیت استفاده از اسکنر را بدون توجه به نوع درایور فراهم کرده و از این طریق کار رو خیلی آسون کرده
    این در مورد تمومی دستگاه ها صدق میکنه؛ مثلا سازندگان کارت گرافیک ؛ درایور ارائه میدهند؛ علاوه بر این یک درایور استاندارد نیز وجود دارد که البته محدود است
    سپس Direct X یا Open GL میآیند و یک لایبراری در اختیار شما قرار میدن که شما با استفاده از اون لایبراری ها؛ میتونید با یک کد با تمومی کارت های گرافیکی که قدرت کافی دارن کار کنین؛ در واقع طی این فرآیند نوع کارت گرافیک یا اسکنر از شما مخفی میشه و کارتون خیلی ساده میشه
    حالا براتون واضحه که اگه شما بخواین فایل COM ای ارائه بدین که با تمومی اسکنر ها سازگار باشه؛ کار بسیار سختی هستش
    حالا میرسیم به بحث شیرین Net. ؛
    Net. اگه بخش CLR و CIL و کلی امکان خوب دیگش رو فاکتور بگیریم که ربطی به این بحث ما ندارن؛ یک مفهومی داره که طی اون فایل های COM ویندوز رو در قالب کدهای Managed شده در اختیار شما قرار میده
    برای مثال ؛ System.Data.SqlClient ؛ یک سری فایل COM هستش که شما خودتون هم میتونید مستقیم باشون کار کنید
    اما مزیت Net. چیه ؟
    علاوه بر آسونی بیش از اندازه تو استفاده؛ شما این اطمینان رو دارین که اگه مثلا از Net. نسخه 2 استفاده کردین؛ کدتون حتما تو انواع ویندوزها کار میکنه و این تضمین توسعه دهنده های Net. هستش.
    و اگه یه روز تحت یه روش استاندارد؛ این پلتفرم به لینوکس منتقل بشه که داره میشه؛ شما این اطمینان رو دارین که کدتون اونجا هم کار میکنه
    لکن این که شما یه COM رو فراخونی کنید؛ ( مثلا در قضیه اسکنر )؛ هیچ تضمینی نیست که اون تو همه ی ویندوز ها درست کار کنه
    چه برسه به لینوکس !
    حال تو خود بخوان این نمیدونم چی چی رو

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •