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

نام تاپیک: آموزش برنامه نویسی GDI در دات نت

  1. #1
    کاربر تازه وارد آواتار Mohammadreza Heidari
    تاریخ عضویت
    مرداد 1386
    محل زندگی
    تبریز
    پست
    62

    آموزش برنامه نویسی GDI در دات نت

    با سلام

    در ابتدا میخوام یک توضیح مختصر در مورد GDI و +GDI بدم تا کسایی که نمیدونن ، بدونن

    +GDI یکی از زیر سیستم های موجود در سیستم عامل Windows XP یا Windows Server 2003 هست که وظیفه اصلیش نمایش اطلاعات بر روی یک خروجی از قبیل صفحه نمایش یا مانیتور و چاپگر یا پرینتر هست.

    GDI مخفف کلمه Graphic Device Interface که در سیستم های قدیمی تر مانند Windows 98 , Me به کار می رفته و امروزه در سیستم های جدیدتر که بالا اسمشون رو بردم از +GDI استفاده میشه. این سیستم یعنی +GDI به شما اجازه میده بدون نیاز داشتن به علوم بیشتری در مورد سخت افزار گرافیک و مانیتور و یا پرینتر کارهای مورد نیاز رو انجام بدین.

    از جمله این کارها به چند مثال اشاره میکنم :

    *ایجاد فرم ها و کنترل هایی با گرافیک بهتر و زیباتر
    *شکل دهی به فرم ها و کنترل ها ( ایجاد فرم دایره ای شکل و .... )
    *کار با Image ها و ایجاد انواع فیلتر بر روی عکس
    *کار با Bitmap ها و خواص Transparent

    و موارد بسیار دیگر.

    حالا اگر مایل باشید من شروع کنم و ادامه مطالب رو برای شما بنویسم ؟

  2. #2
    کاربر تازه وارد آواتار Mohammadreza Heidari
    تاریخ عضویت
    مرداد 1386
    محل زندگی
    تبریز
    پست
    62

    نمونه برنامه

    این هم نمونه برنامه ای که خودم دارم مینویسم
    البته عکس های برنامه هست ولی خلاصه نمونه کوچکی از کار با +GDI هست
    عکس های ضمیمه عکس های ضمیمه

  3. #3
    حالا اگر مایل باشید من شروع کنم و ادامه مطالب رو برای شما بنویسم ؟
    خیلی خوبه ادامه بدید

  4. #4
    کاربر تازه وارد آواتار Mohammadreza Heidari
    تاریخ عضویت
    مرداد 1386
    محل زندگی
    تبریز
    پست
    62

    بخش اول :

    بخش اول :

    معرفی کلاس های مهم +GDI
    --------------------------------------------------------------------------
    فضای نامی که در DotNet برای +GDI اختصاص داده شده است System.Drawing میباشد که در این فضای نامی چندین کلاس و فضاهای نامی دیگه وجود داره.
    از جمله :

    System.Drawing
    System.Drawing.Drawing2D
    System.Drawing.Printing
    System.Drawing.Text
    System.Drawing.Design


    ابتدا با System.Drawing شروع میکنم :

    Graphics :
    مهم ترین کلاس در این بخش کلاس Graphics میباشد. این کلاس برای کشیدن یک یا چند خط ، دایره ، چندضلعی ، مستطیل ، مربع ، Image ، متن و غیره هست.

    Pen :
    این کلاس برای مشخص کردن رنگ قلم میباشد. که برای کشیدن خط ،دایره و ... در کلاس Graphics استفاده میشود.

    برای درک بهتر یک نمونه برنامه با VB.Net نوشتم :


    PublicClass Form1
    PrivateSub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    Dim objGr As Graphics = Me.CreateGraphics
    objGr.DrawLine(New Pen(Color.Red, 2.0), 10, 50, 110, 150)
    EndSub
    EndClass


    در این نمونه برنامه ما برای اینکه بتونیم بر روی فرم یک خط بکشیم یک object از نوع System.Drawing.Graphics ایجاد میکنیم و سپس برای ارتباط با گرافیک فرم متد CreateGraphics را به objGr پاس میکنیم.

    در دستور بعدی به وسیله متد DrawLine یک خط بر روی فرم میکشیم. و به وسیله کلاس Pen رنگ و ضخامت قلمی که خط را میکشد مشخص شده است و اعداد بعدی که ورودی متد میباشند به ترتیب X , Y شروع خط و X ,Y پایان خط هستند که در مورد X , Y هم مفصل توضیح میدم.

    این هم عکس برنامه :



    منتظر بقیه آموزش باشید.
    عکس های ضمیمه عکس های ضمیمه

  5. #5
    کاربر تازه وارد آواتار Mohammadreza Heidari
    تاریخ عضویت
    مرداد 1386
    محل زندگی
    تبریز
    پست
    62

    بخش اول ( X, Y )

    در این تصویر تا جایی که میتونستم سعی کردم X , Y رو شرح بدم.

    تو این عکس

    اولا : محور X , Y رو نمایش دادم.
    دوما : Point شروع رو به رنگ آبی و پایان رو به رنگ قرمز نمایش دادم
    سوما : یک نمونه خط رو در این Point ها نمایش دادم که به رنگ سبز هستش.

    امیدوارم که مفید باشه.
    عکس های ضمیمه عکس های ضمیمه

  6. #6
    کاربر تازه وارد آواتار Mohammadreza Heidari
    تاریخ عضویت
    مرداد 1386
    محل زندگی
    تبریز
    پست
    62
    برای کشیدن کمان :


    Dim gr As Graphics = Me.CreateGraphics
    Dim p As Pen = New Pen(Color.Red, 2.0)
    gr.DrawArc(p, 0, 0, 50, 50, 0, 180)
    gr.DrawArc(p, 55, 0, 50, 50, 0, 160)


    پارامتر های ورودی :

    1: Pen
    2: Start X
    3: Start Y
    4: Width
    5:Height
    6:زاویه شروع
    7: زاویه کشش کمان

    در ضمن زاویه شروع همیشه مانند عقربه ساعت روی 3 میباشد و جهت کشش هم در جهت عقربه های ساعت میباشد.

  7. #7
    کاربر تازه وارد آواتار Mohammadreza Heidari
    تاریخ عضویت
    مرداد 1386
    محل زندگی
    تبریز
    پست
    62
    ظاهرا مطالبی که در موردشون مینویسم زیاد مفید نیست به همین دلیل سعی میکنم از این به بعد مطالبی در حد حرفه ای بیان کنم.

    امیدوارم این بار مفید واقع بشه.

    در ضمن اگه در مورد توابع ای که در کلاس Graphics وجود داره مشکلی وجود داشت تا جایی بتونم در خدمتم.

  8. #8
    کاربر تازه وارد آواتار Mohammadreza Heidari
    تاریخ عضویت
    مرداد 1386
    محل زندگی
    تبریز
    پست
    62

    استفاده از گاما ( Gamma )

    شما میتوانید از Gamma Correction در کلاس LinerGradiantBrush استفاده کنید. برای این کار باید مقدار خاصیت GammaCorrection را True قرار بدهید تا از این حالت استفاده کنید.

    نکته : مقدار خاصیت GammaCorrection در حالت پیش فرض False میباشد.

    به عنوان مثال دو مستطیل ایجاد میکنیم و هر دوی آنها را با یک LinerGradiantBrush پر میکنیم. یکی از مستطیل ها همراه با Gamma پر شده است و دیگری به صورت ساده.

    کد ویژوال بیسیک دات نت :

    Dim linGrBrush AsNew LinearGradientBrush( _
    New Point(0, 10), _
    New Point(200, 10), _
    Color.Red, _
    Color.Blue)
    e.Graphics.FillRectangle(linGrBrush, 0, 0, 200, 50)
    linGrBrush.GammaCorrection = True
    e.Graphics.FillRectangle(linGrBrush, 0, 60, 200, 50)


    کد سی شارپ دات نت :


    LinearGradientBrush linGrBrush = new LinearGradientBrush(
    newPoint(0, 10),
    newPoint(200, 10),
    Color.Red,
    Color.Blue);
    e.Graphics.FillRectangle(linGrBrush, 0, 0, 200, 50);
    linGrBrush.GammaCorrection =
    true;
    e.Graphics.FillRectangle(linGrBrush, 0, 60, 200, 50);


    این کد ها را به رویداد Paint اضافه کنید و برنامه را اجرا کنید.

    مستطیل اول بدون Gamma میباشد و دومی با Gamma :
    عکس های ضمیمه عکس های ضمیمه

  9. #9
    کاربر دائمی آواتار DataMaster
    تاریخ عضویت
    تیر 1382
    محل زندگی
    مشهد الرضا
    پست
    634
    خسته نباشید
    ان شالله هر وقت که مقاله کامل شد PDF اون یادتون نره

  10. #10
    کاربر تازه وارد آواتار Mohammadreza Heidari
    تاریخ عضویت
    مرداد 1386
    محل زندگی
    تبریز
    پست
    62
    ان شالله هر وقت که مقاله کامل شد PDF اون یادتون نره
    به روی چشم

  11. #11
    ظاهرا قصد ندارید اون را ادامه بدید

  12. #12
    کاربر دائمی آواتار danial82
    تاریخ عضویت
    مرداد 1384
    محل زندگی
    iran_tehran
    پست
    531
    منتظر ادامه آموزش هستیم

  13. #13
    کاربر دائمی
    تاریخ عضویت
    مرداد 1382
    محل زندگی
    استان فارس
    پست
    1,054
    http://dotnetsource.com/fa/forum/def...g=posts&t=4257
    من اینجا یه مقدار در این مورد نوشتم البته هنوز کامل نشده اما خوب بدک نیست . دوست داشتید اینو بخونید .

  14. #14

    نقل قول: آموزش برنامه نویسی GDI در دات نت

    ببخشید تمام رنگهای یک تصویر با چه کدهایی میتوانیم در زبان #cبنویسیم

  15. #15

    نقل قول: آموزش برنامه نویسی GDI در دات نت

    واقعا جالب بود منتظرم که ادامش بدید

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

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