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

نام تاپیک: ایجاد یک عکس در picturebox و رسم یک خط روی ان و ذخیره عکس

  1. #1

    Question ایجاد یک عکس در picturebox و رسم یک خط روی ان و ذخیره عکس

    سلام. من میخام رو picturebox یه عکس ایجاد کنم با بکگراند سفید . بعد روی این عکس یه متن بنویسم و بعد عکس رو ذخیره کنم.
    میشه کدش رو راهنمایی کنید ؟؟

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


    من کلا این کد رو نوشتم





    Bitmap b = new Bitmap(pictureBox1.Width, pictureBox1.Height);
    Graphics g = Graphics.FromImage(b);
    g.FillRectangle(new SolidBrush(Color.White), new Rectangle(0, 0, pictureBox1.Width, pictureBox1.Height));
    g.DrawString("hello", new Font("Times New Roman", 20), new SolidBrush(Color.Red), new PointF(10, 10));
    pictureBox1.Image = b;



    برای ایجاد بک گراند سفید از این کد استفاده کردم

    g.FillRectangle(new SolidBrush(Color.White), new Rectangle(0, 0, pictureBox1.Width, pictureBox1.Height));

    منتها بعد از اینکه متن روی عکس نوشته شد ، دوباره بخام با کد بالا رنگ بکگراند رو عوض کنم اون متن هم از بین میره، راه حل این مشکل چیه ؟ میخام بدون اینکه صدمه ای به متن ها و اشکالی که رو عکس کشیده میشن وارد بشه بتونم رنگ بک گراند رو عوض کنم
    آخرین ویرایش به وسیله farhadr1375 : سه شنبه 12 خرداد 1394 در 02:26 صبح

  2. #2
    کاربر دائمی آواتار asman.abi
    تاریخ عضویت
    اسفند 1391
    محل زندگی
    ایران
    پست
    187

    نقل قول: ایجاد یک عکس در picturebox و رسم یک خط روی ان و ذخیره عکس

    خب مسلما درست کار نمی کنه. چرا؟
    برای این که شما وقتی دوباره دستور FillRectangle رو اجرا می کنید، کل picturebox که تنظیم کردید پر می شه از رنگ انتخابی شما.

    برای حل این مسئله باید دوباره نوشته مورد نظر رو بازنویسی کنی که یه شکل جدید با رنگی که در مرتبه دوم انتخاب کردید، تشکیل بشه.

    g.FillRectangle(new SolidBrush(Color.blue), new Rectangle(0, 0, pictureBox1.Width, pictureBox1.Height));
    g.DrawString("سلام", new Font("Times New Roman", 20), new SolidBrush(Color.Red), new PointF(10, 10));

  3. #3

    نقل قول: ایجاد یک عکس در picturebox و رسم یک خط روی ان و ذخیره عکس

    درسته. شما موقعی ک بخواهید رنگ پس زمینه رو عوض کنید هیچ راهی ندارید وباید قبل از هر گونه رسم شکل اینکارو انجام بدین. چرا؟ شی تصویر رو وایت برد (whiteBoard) در نظر بگیرید! و شی گرافیک رو ماژیک . شما هیچ راهی برای تغییر رنگ پس زمینه ندارین مگه اینکه کل برد رو رنگ کنید و مسلماً چیزایی که ترسیم کردین از بین میرن. برای این کار هم صحیح تر اینه که از متد g.Clear(yourBgColor) استفاده کنین.
    اگه واقعاً نیاز به این کاردارین (ارزششو داشته باشه) باید دست به دامن داده ساختارها بشین.
    مثلاً یه پشته!:
    برای هر شکلی که ترسیم میشه (خصوصیاتی که باعث ترسیم میشه) رو طی یک سلسله مراتب وراثت پیاده کنید و اصطلاحاً رکورد سابقه تعریف کنید. مثلاً رکورد ترسیم مستطیل، ترسیم دایره، متن، خط و ...
    وقتی کاربر شکلی رو ترسیم کرد همزمان رکورد سابقه براش تشکیل بدین و پشته درج کنید. اینجوری با حرکت بین رکوردها قابلیت Undo و Redo رو پیدا میکنید. حال اگه کاربر نیاز به تغییر پس زمینه داشت مشکلی نیست اونو تغییر میدیم و در ادامه برحسب رکوردهای سابقه ای که داریم دوباره اشیا رو رسم میکنیم.
    من این کار رو انجام دادم 4-5 سال پیش توی برنامه Paintی ک نوشتم (تازه کار)
    آخرین ویرایش به وسیله RmeXXXXXXXXX : سه شنبه 12 خرداد 1394 در 16:57 عصر

  4. #4

    نقل قول: ایجاد یک عکس در picturebox و رسم یک خط روی ان و ذخیره عکس

    ممنون از پاسخ شما. حالا فرض کنید که کاربر صدتا خط رو عکس کشیده و ده تا تکست نوشته و ده تا دایره کشیده ، حالا اگه بخاط رنگ بکگراند رو عوض کنه باید دوباره تمام اون اشکال رو از نو کشیده بشن؟؟ ینی هیچ راهی نداره بدون اینکه صدمه ای به اون شکل ها وارد بشه رنگ پس زمینه رو تغییر داد؟

تاپیک های مشابه

  1. پرینت عکس یک picturebox
    نوشته شده توسط m_amin_t در بخش C#‎‎
    پاسخ: 5
    آخرین پست: پنج شنبه 23 اردیبهشت 1395, 13:49 عصر
  2. عکس یک picturebox در گزارش (جدا از دیتابیس)
    نوشته شده توسط m_amin_t در بخش گزارش سازی با Crystal Report
    پاسخ: 15
    آخرین پست: پنج شنبه 18 بهمن 1386, 13:25 عصر
  3. نمایش عکس در picturebox
    نوشته شده توسط reza_z در بخش C#‎‎
    پاسخ: 5
    آخرین پست: دوشنبه 19 آذر 1386, 15:21 عصر
  4. چرخش یک عکس در picturebox
    نوشته شده توسط poya011 در بخش C#‎‎
    پاسخ: 4
    آخرین پست: جمعه 18 خرداد 1386, 12:37 عصر
  5. کمک برای ایجاد آرایه ای از PictureBox
    نوشته شده توسط Parsa_2006 در بخش VB.NET
    پاسخ: 2
    آخرین پست: یک شنبه 06 خرداد 1386, 01:00 صبح

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

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