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

شرح لكود حمل الصور مع ملف البيكسل

بدأه عرب 2006 في 28 مارس 2008 · 7 رد · 1,000 مشاهدة · في Microsoft Visual C#.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

أرجوا منكم مساعدتي في شرح الكود أو تعديله ...

المطلوب مني أن أقوم بتحميل الصورة وفي نفس الوقت البيكسل حق الصورة يكون في ملف خارجي ..

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

post-70807-1206706402_thumb.png

using System;
  using System.Drawing;
  using System.Windows.Forms;

  public class MyForm : System.Windows.Forms.Form
  {
	private Button btnLoad;  
	private PictureBox imgPhoto;

	public MyForm()
	{
	  this.Text = "www.java2s.com";

	  btnLoad = new Button();
	  btnLoad.Text = "&Load";
	  btnLoad.Left = 10;
	  btnLoad.Top = 10;
	  btnLoad.Click += new System.EventHandler(this.OnLoadClick);

	  imgPhoto = new PictureBox();
	  imgPhoto.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
	  imgPhoto.Width = this.Width / 2;	  
	  imgPhoto.Height = this.Height / 2;	  
	  imgPhoto.Left = (this.Width - imgPhoto.Width) / 2;
	  imgPhoto.Top = (this.Height - imgPhoto.Height) / 2;
	  imgPhoto.SizeMode = PictureBoxSizeMode.StretchImage;

	  this.Controls.Add(btnLoad);
	  this.Controls.Add(imgPhoto);  
	}

	protected void OnLoadClick(object sender, System.EventArgs e)
	{
	  OpenFileDialog dlg = new OpenFileDialog();

	  dlg.Title = "Open Image";
	  dlg.Filter = "jpg files (*.jpg)|*.jpg|All files (*.*)|*.*";

	  if (dlg.ShowDialog() == DialogResult.OK)
	  {
		imgPhoto.Image = new Bitmap(dlg.OpenFile());
	  }

	  dlg.Dispose();
	}


	public static void Main()
	{
	  Application.Run(new MyForm());
	}
  }
#3
using System;
  using System.Drawing; // استعمال حيّز الأسماء الخاص بالرسم
  using System.Windows.Forms; // استعمال حيز الاسماء الخاص بالنوافذ وملحقاتها

  public class MyForm : System.Windows.Forms.Form // صنف (كلاس) يرث من الكلاس الاصلي "فورم"
  {
	private Button btnLoad;   // تعريف متغير خاص من نوع "بوتون" اسم المتغير امامك
	private PictureBox imgPhoto; // تعريف متغير خاص من نوع "صندوق صورة" اسم المتغير امامك

	public MyForm() // المشيّد \ أو دالة البناء الخاصة باصنف.. تعمل فورا عند انشاء اي كائن من الصنف
	{
	  this.Text = "www.java2s.com"; // تسمية الكائن الحلي بإسم الموقعي اي تسمية النافذة وليس الكائن نفسه

	  btnLoad = new Button(); // انشاء كائن btnLoad وهو زر
	  btnLoad.Text = "&Load";// تعيين النص الخاص بالزر
	  btnLoad.Left = 10; // تحديد موقع الزر يسارا بالنسبة للنافذة
	  btnLoad.Top = 10;// تحديد موقع الزر من الأعلى بالنسبة للنافذة
	  btnLoad.Click += new System.EventHandler(this.OnLoadClick); // تعريف delegate للتعامل مع الحدث كلك

	  imgPhoto = new PictureBox(); // انشاء كائن صندوق صورة واستدعاء دالة البناء الخاصة به
	  imgPhoto.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D; // نوع التحديد لهذا الصندوق 
	  imgPhoto.Width = this.Width / 2;	  // عرض الصورة هو نصف عرض النافذة
	  imgPhoto.Height = this.Height / 2;	  // ارتفاع الصورة هو نصف ارتفاع النافغذة
	  imgPhoto.Left = (this.Width - imgPhoto.Width) / 2;// موقع الزاوية اليسرى العلوية للصورة افقيا عرض النافذة ناقص عرض الصورة مقسوم على 2 (لكي تقع الصورة في المركز)
	  imgPhoto.Top = (this.Height - imgPhoto.Height) / 2;// موقع الزاوية اليسرى العلوية للصورة عاموديا
	  imgPhoto.SizeMode = PictureBoxSizeMode.StretchImage; // نوع الحجم في الصورة يعني مشدودة أو مربعات متكررة لنفس الصورة أو متمركزة الخ

	  this.Controls.Add(btnLoad); // الطريقة اليدوية لإضافة اي محكم الى النافذة
	  this.Controls.Add(imgPhoto);  // نفس الشيء اعلاه
	}

	protected void OnLoadClick(object sender, System.EventArgs e) // هذه الدالة الخاصة بالرد  على ضغطة الزر... عند الضغط على النافذة بالفارة تُنفَّذ 
	{
	  OpenFileDialog dlg = new OpenFileDialog(); // تعريف كائن خاص بصناديق الحوار لفتح الملفات 

	  dlg.Title = "Open Image";// اسم الصندوق - عنوانه
	  dlg.Filter = "jpg files (*.jpg)|*.jpg|All files (*.*)|*.*"; // انواع الملفات التي سيعرضها الصندوق

	  if (dlg.ShowDialog() == DialogResult.OK) // داخل الجملة الشرطية تم اظهار الصندوق اذا ضغط المستخدم ok يتحقق الشرط
	  {
		imgPhoto.Image = new Bitmap(dlg.OpenFile()); // تحديد اسم الملف الذي سيحمل الى صندوق الصورة
	  }

	  dlg.Dispose();// تدمير أو حذف الكائن الذي عرفناه لصندوق الناص لأننا لم نعد بحاجة اليه
	}


	public static void Main() // نقطة بداية البرنامج
	{
	  Application.Run(new MyForm()); // استدعاء الدالة run المسؤولة عن تشغيل البرنامج الرسومي اي ذو النوافذ ونعطي للدالة اسم النافذة التي سيبدأ منها البرنامج
	}
  }

هذا شرح بسيط للكود...

هو من ابسط الاكواد ونصفه منشأ آليا من قبل فجوال ستوديو...

تم تعديل هذه المشاركة بواسطة إسماعيل ابراهيم في 28 مارس 2008 في 19:41

#4

ما علاقة الصورة بالبكسل الخاص بها (و ما هو البكسل الخاص بالصورة حسب قصدك) بالملف الخارجي؟؟؟؟؟

تم تعديل هذه المشاركة بواسطة golden man في 28 مارس 2008 في 20:07

#5

أشكر أخي الفاضل على شرح الكود ...

بارك الله فيك ...

الصورة اللي بتتحمل على الواجهه حيكون لها بيكسل.. تمام ....

طيب أريد هذا البيكسل يكون في ملف الدفتر ...خارج البرنامج ...

أتمنى انها وضحت ..وارجوا الرد

#6

هل تقصد قياس... مثلا

LEFT TO RIGHT

width: 250 pixel

hight:200 pixel

يعني تريد إخراخ قياسات الصورة في ملف آخر؟

إذا كان هذا قصدك أخبرنا.

تم تعديل هذه المشاركة بواسطة إسماعيل ابراهيم في 29 مارس 2008 في 00:01

#7

لم تجب على سؤالي : (ما هو مفهوم البكسل في نظرك؟)

لأن البكسل هو عبارة عن وحدة قياس و الصورة مكونة من مجموعة من الـ pixels التي تصف أجزائها, فإذا أردت الـ pixels الخاص بالصورة فيتم ذلك بوضع الصورة في bitmap و استخدام التابع GetPixel و ذلك من أجل كل pixel في الصورة .

#8

بارك الله فيك ياأخي واشكر لك هذا التفاعل الجميل ...

اقصد بالبكسل هو التمثيل الرقمي لصورة ..

مثل لو حملنا صورة ما سوف يكون لها تمثيل رقمي لها ونفترض انه التالي :

99 88 76 54 23 87

22 33 44 54 76 22

54 36 54 76 87 8

98 87 65 55 44 3

34 55 66 77 65 43

.

.

.

.

هذا التمثيل اريده في ملف خارجي ..

أرجوا الرد التسليم بكرة الله...

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