الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

كيفية تعبئة منطقة معينة في الصورة بلون معين ... ؟؟

مغلق
بدأه XtottiX في 2 مايو 2007 · 2 رد · 606 مشاهدة · في Microsoft Visual C#.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم اخواني ...

أحب استفسر عن طريقة تعبئة منطقة معينة في صورة أو رسم ...

تماما كوظيفة هذا الأمر في برنامج الرسام ...

v

v

v

v

v

772f0933a5.jpg

وشكرا لكم ...

#2

السلام عليكم

بإمكانك العمل بهذه الطريقة

أولا تحميل الصورة الخلفية لمجال الرسم

 bitmap = new Bitmap(Application.StartupPath + "\\background.bmp");
			bitmaptemp = (Bitmap)this.bitmap.Clone();
			gr = Graphics.FromImage(bitmaptemp);
			gr.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias;
			this.pictureBox1.Image = bitmaptemp;

وهذا لإختيار لون المستطيل الذي تريد رسمه

 ColorDialog CDLG = new ColorDialog();
			CDLG.ShowDialog();
			AliceblueBrush = new SolidBrush(CDLG.Color);

وهذا لرسم المستطيل في إحداثيات يتم إختيارها إعتباطيا:Random

 Random RR = new Random();
			// back.bmp is image witch should be with the debug folder 
			gr = Graphics.FromImage(bitmaptemp);
			this.pictureBox1.Image = bitmaptemp;
			// Create rectangle for the Elipse with random size.
			rect = new Rectangle(RR.Next(150), RR.Next(150) , 50, 50);
			// Fill rectangle on screen.
			gr.FillRectangle(AliceblueBrush, rect);
			gr.DrawRectangle(new System.Drawing.Pen(CDLG.Color, 0), rect);
			bitmaptemp = (Bitmap)this.bitmap.Clone();

وهذا لحفظ الصورة بعد رسم المستطيل

 SaveFileDialog SVF = new SaveFileDialog();
			SVF.InitialDirectory = @"c:\";
			SVF.Filter = "All files (*.*)|*.*|JPEG files (*.jpg)|*.jpg";
			SVF.FilterIndex = 2;
			SVF.RestoreDirectory = true;
			if (SVF.ShowDialog() == DialogResult.OK)
			{   Bitmap image = new Bitmap(pictureBox1.Image);
				image.Save(SVF.FileName);
			}

وهذا لإلغاء إضافة المستطيل

this.pictureBox1.Image = bitmaptemp;

والله أعلم

Draw_on_image.zip

post-91400-1178180603_thumb.jpg

#3

معليش أخي بس يبدو ما فهمت قصدي ...

مثلا لو عندي صورة بهذا الشكل ...

e0b7c84c11.jpg

وأحدد نقطة معينة من الصورة ولتكن النقطة (0,0) ... واستخدم أمر التعبئة المطلوب لتكون النتيجة بهذا الشكل ...

935375ad5f.jpg

ياليت تفيدوني في طريقة التلوين بهذا الشكل ...

هل مثلا استخدم Fill Region ... ؟؟

ولكن كيف اضيف هذه الحدود كإطار لا يتجاوزه التلوين ... ؟؟؟

هذا الموضوع مغلق.

مواضيع مشابهة