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

مطلوب مساعدة بكود Bitmap

بدأه عمرو عماد في 4 أكتوبر 2012 · 10 رد · 880 مشاهدة · في Microsoft Visual Basic.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع
Dim Scrn As New Bitmap(Screen.PrimaryScreen.Bounds.Width, Screen.PrimaryScreen.Bounds.Height)

السلام عليكم ورحمة الله وبركاته

هل يمكن أحد الأخوة يشرح لي هذا الكود .. نعم أنا اعلم أنه يأخذ نوع من Bitmap ويبدأ بيقيمة أبتدائية له لطول وعرض الشاشة في بداية التعريف

لكن لماذا لا أستطيع أن أضع هذا الكود علي هذا الشكل ؟؟

  Dim Scrn As New Bitmap
Scrn.Width = Screen.PrimaryScreen.Bounds.Width
Scrn.Height = Screen.PrimaryScreen.Bounds.Height

)

وأعذروني لأسئلتي هذه لكني قريبا سوف أتعافي بإذن الله :)

وجزاكم الله خيرا

#2
Dim Scrn As New Bitmap(Screen.PrimaryScreen.Bounds.Width, Screen.PrimaryScreen.Bounds.Height)

هذا الكود لاخوي لالتقاط صوره سطح المكتب وتحويلها الى امتداد Bitmap

تقدر تكتبه على الطريقه هذي على ماظن

 int screenWidth = Screen.PrimaryScreen.Bounds.Width
 int screenHeight = Screen.PrimaryScreen.Bounds.Height
  Dim Scrn As New Bitmap(screenWidth,screenHeight)

تم تعديل هذه المشاركة بواسطة Mr.Owsama في 4 أكتوبر 2012 في 18:37

#3

نعم أخي أعلم ان هذا الكود خاص بإلتقاط الصورة

لكن أنا بتكلم علي السينتكس هو دلوقتي أنا لازم وأنا بعرف الكلاس ده أعطيه القيمتين العرض والإرتفاع

خيث أنني أريد تغير هذه القيمة اثناء تشغيل البرنامج

#4

إنشاء كائن من الصنف Bitmap يكون عبر المشيد وبالتالي أول خطأ في السطر الأول أن الأقواس ناقصة

Dim Scrn As New Bitmap()

والمشيدات المبنية داخله لا يوجد من بينها مشيد بدون بارمترات لهذا سيكون هناك خطأ أنه لا يمكن إنشاء كائن بالأقواس فقط بل لا بد من تمرير بارمترات

والصنف Bitmap تم إنشاء 12 مشيد مختلف باختلاف أنواع وعدد البارمترات

منها متحول واحد من النوع سترينغ والذي يمثل اسم ملف بحيث ينشيء صورة انطلاقا من ملف صورة محفوظ على الهارد ديسك أو الإنترنت

ومنها متحولين من النوع int ويمثلان العرض والطول وهو الذي استخدمتيه في المثال أعلاه

ومنها خيارات أهرى مختلفة

بعد إنشاء الصورة لا يمكن تغيير بعض الخصائص ومنها العرض والطول لأنها للقراءة فقط وتغييرها يتم داخليا فقط من خلال المناهج الداخلية

ولهذا سيكون هناك خطأ في أسطر تعيين العرض والطول بشكل منفصل بعد إنشاء الكائن

وإنما فقط من خلال تمريرهما أثناء إنشاء الكائن

تم تعديل هذه المشاركة بواسطة أبو أحمد المبرمج في 4 أكتوبر 2012 في 19:37

ما أقبـح المعصية ، تذهب لذتها ويبقى إثمها ... ومأ أحسن الطاعة ، تذهب مشقتها ويبقى ثوابها

كل نعيم دون الجنة غرور ... وكـل شقـاء دون النـار سرور

الدورة التطبيقية لتعليم التصميم بالإليستريتور

#5
أبو أحمد المبرمج كتب:

بعد إنشاء الصورة لا يمكن تغيير بعض الخصائص ومنها العرض والطول لأنها للقراءة فقط وتغييرها يتم داخليا فقط من خلال المناهج الداخلية

جزاكم الله خيرا أخي أبو أحمد المبرمج هذا ما قصدت توضيحه .. فقد أجابتني بما أريد .. وأعتقد كلمة المشيد هنا تقصد بها Class وليس Structure

لكني قمت بإقتباس جزء من كلامك وهي ما أحببت التوضيح عنه أكثر .. ماذا تقصد بتغييرها يتم داخليا فقط من خلال المناهج الداخلية

#6

المشيد هو ال Constructor و هو المنهج الذي يحمل نفس اسم الصنف و ينفذ تلقائيا أثناء إنشاء الكائن بتعليمة new

وفي حال إنشاء نسخ من هذا المنهج (المشيد) ببارمترات مختلفة فهذا يعني إن الإنشاء يتم مع تمرير قيم

وما قصدته أن المناهج الداخلية المبنية داخل الصنف هي التي تقوم بتحديد قيم الخصائص التي للقراءة فقط ولا يمكن تغييرها بشكل مباشر من قبل المبرمج

ولكن هناك بعض الحيل

كمثال أحد المشيدات يأخذ بامتر كائن صورة Image مع أبعاد جديدة فيقوم بإنشاء صورة بيتماب Bitmap من الصورة مع تغيير قياساتها للأبعاد الجديدة

طبعا الصنف Bitmap هو صنف يرث من الصنف Image

ما أقبـح المعصية ، تذهب لذتها ويبقى إثمها ... ومأ أحسن الطاعة ، تذهب مشقتها ويبقى ثوابها

كل نعيم دون الجنة غرور ... وكـل شقـاء دون النـار سرور

الدورة التطبيقية لتعليم التصميم بالإليستريتور

#7

سؤال أخر أخي أحمد المبرمج إن أمكن

وايضا الاخوة الكرام

Dim Scrn As New Bitmap(Screen.PrimaryScreen.Bounds.Width, Screen.PrimaryScreen.Bounds.Height)
Dim G As Graphics = Graphics.FromImage(Scrn)

G.CopyFromScreen(0, 0, 0, 0, Scrn.Size)
PictureBox1.Image = Scrn

لماا لا أستطيع كتابته علي هده الطريقة

Dim G As Graphics = Graphics.FromImage(PictureBox1.Image)

G.CopyFromScreen(0, 0, 0, 0, PictureBox1.Image.size)

وجزاكم الله خيرا

#8

هل تقصد يظهر خطأ أم أنه لا يعمل

طبعا مع بعضها البعض سيظهر خطأ لأنك صرحت عن G مرتين

أما إذا أبقيت فقط على السطرين الأخيرين فيتم ترجمته عادي ولكن لا يؤدي أي عمل

طيب قل لي مالذي تريد عمله بالضبط لكي نتوصل للطريقة الأمثل

ما أقبـح المعصية ، تذهب لذتها ويبقى إثمها ... ومأ أحسن الطاعة ، تذهب مشقتها ويبقى ثوابها

كل نعيم دون الجنة غرور ... وكـل شقـاء دون النـار سرور

الدورة التطبيقية لتعليم التصميم بالإليستريتور

#9
G.CopyFromScreen(0, 0, 0, 0, Scrn.Size)
PictureBox1.Image = Scrn

في هادين السطرين قمنا بسحب الصورة من الإسكرين بأبعاد معنية هدا ما فهمته

ثم قمنا بوضع هده الصورة في picturebox

أنا إقتراحي هو

G.CopyFromScreen(0, 0, 0, 0, PictureBox1.Image.size)

وبلك نكون قد وفرنا علي أنفسنا وعلي الرام المتغير Scrn

كل المسألة بالنسبة لي توفير متغيرات فقط لا غير

هل حضرتك من القاهرة؟

هل يمكننا التواصل بطريقة اخري غير المنتدي؟؟

#10

لا يا أخي في الحالتين لن يؤدي المطلوب

لأنه هو ينسخ سطح المكتب إلى كائن الجرافيك G وأما Scrn فهو فقط يأخذ منها الأبعاد ولا يضع فيها شيء

بالنسبة لإقامتي واهتماماتي والتواصل تجدها في بروفايلي

/index.php?showuser=261046

ما أقبـح المعصية ، تذهب لذتها ويبقى إثمها ... ومأ أحسن الطاعة ، تذهب مشقتها ويبقى ثوابها

كل نعيم دون الجنة غرور ... وكـل شقـاء دون النـار سرور

الدورة التطبيقية لتعليم التصميم بالإليستريتور

#11
Dim Scrn As New Bitmap(Screen.PrimaryScreen.Bounds.Width, Screen.PrimaryScreen.Bounds.Height)
Dim G As Graphics = Graphics.FromImage(Scrn)

G.CopyFromScreen(0, 0, 0, 0, Scrn.Size)
PictureBox1.Image = Scrn

والله أني خجلت من كثرة سؤالي ولكن أعذرني أخي حفظك الله ورعاك وإن لم يكن لديك مانع سوف أقوم بإضافتك علي الماسينجر وأتحدث معك

الكود الذي كتبته بالأعلي هو الكود الكامل لأخذ نسخة من سطح المكتب إلي الصورة كمان نقلته من برنامج وضعه الأخ في منتدي السي شارب

فهل شرحته سطرا سطرا لكي أعرف أين تم وضع نسخة من صورة سطح المكتب بداخل Scrn

أعذرني لفهمي المتأخر لكني أعتقد عندي تضارب هو ما يمنعني عن المرور

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