Advanced Search

المحرر موضوع: زيادة سرعة الرسوميات فى برامجك  (زيارة 975 مرات)

0 الأعضاء و 1 ضيف يشاهدون هذا الموضوع.

أغسطس 19, 2002, 11:02:53 صباحاً
زيارة 975 مرات

Mgh

  • عضو خبير

  • *****

  • 3536
    مشاركة

    • مشاهدة الملف الشخصي
زيادة سرعة الرسوميات فى برامجك
« في: أغسطس 19, 2002, 11:02:53 صباحاً »
لرسومات ((Graphics)  تستهلك الكثير من مساحة الذاكره . ولكن من الممكن التقليل من هذا الإستهلاك بواسطة بعض الطرق ومنها :

* إستعمل أداة التحكم ( Image) لإظهار الصور :
أداة (image) هى أداه خفيفه يجب عليك إستخدامها إذا لم تحتاج لإمكانيات إضافيه فهى لا تستهلك الذاكره كأداة ( Picture) مثلا فإنه يمكنك إستخدام خمس أو عشر أضعاف من أدة ( image) بدلا من أداة ( Picture) وبنفس الكفاءه.
وكذلك فإن أداة ( image) يعاد رسمها ( Repaint) أسرع من الأدوات الأخرى.
فقط إستخدم أداة ( Picture) عندما تريد إستخدام إمكانيتها الإضافيه مثل ارسم فيها و القدره على إحتواء أدوات أخرى.

* حمل الصور من الملفات حسب الحاجه فقط :
أحيانا تضع بعض الصور فى البرنامج أثناء وقت التصميم كخلفيات الفورمات والأزرار وهكذا . فتظل الصور مخزنه فى الملف التشغيلى بعد ذلك مما يزيد من إشغاله للذاكره و يبطىء من تحميله عند الفتح. ولذلك يمكن أن تخزن هذه الصور فى ( Resource File) و تناديها مستخدما ( LoadRes Picture Function) لتحملهم أثناء تشغيل البرنامج عند الحاجه. وهذه الطريقه ناجحه فى حالة عدم إستعمال جميع الصور فى الواجهه مرة واحده وهذا لأن هذه الصور لن تحمل قبل إظهار الفورمه على الشاشه .

* إشراك الأدوات فى نفس الصورة :
فمثلا لو إردت أن تستعمل صوره فى أكثر من أداه  فما عليك إلا أن تحملها فى أداه واحده ثم تناديها منها كما فى المثال التالى :
   
Picture = LoadPicture("C:\Windows\Chess.bmp")
Image1.Picture = Picture      ' Use the same picture.
Picture1.Picture = Picture   ' Use the same picture.

ولكن عند إستخدام التالى فإنك تحمل الصوره عدة مرات فى الذاكره مما يأخذ الكثير من حجمها والكثير من الوقت :

Picture = LoadPicture("C:\Windows\Chess.bmp")
Image1.Picture = LoadPicture("C:\Windows\Chess.bmp")
Picture1.Picture = LoadPicture("C:\Windows\Chess.bmp")
   
* إستعمال ( PaintPicture Method)
بغير وضع الصوره فى أداه للصوره فإنه يمكنك إظهارها فى أى مكان فى الفورمه باستخدام أمر (PaintPicture) . وهذه الطريقه هامه عندما تريد تكرار الصوره عدة مرات على سطح الفورمه.

* إخلاء الذاكره المستعمله بواسطة الرسومات :
إذا لم تعد تستخدم إحدى الصور المحمله فى الأداه ( Form , Picture box, image) فعليك إستخدام الكود التالى

Set Picture1.Picture = Nothing

و يمكنك أيضا إستخدام  أمر ( CLS) لمسح الذاكره المستخدمة بواسطه الصوره . ولكن لا تنسى تغيير قيمة الخاصيه ( Autoredraw) إلى (False) .   
mypic.AutoRedraw = True   ' Turn on AutoRedraw bitmap.
mypic.Cls                  ' Clear it.
mypic.AutoRedraw = False      ' Turn off bitmap.

* إستخدام إمتدادات معينه لملفات الصور :
مع أن ((.bmp هو الإمتداد الطبيعى لملفات الصور . ولكن الفيجوال بيزك يمكنه إستعمال إمتدادات أخرى من ملفات الصور. مثل   (Wmf.) والذى هو صوره مضغوطه لل ( .Bmp) عشر مرات أو أكثر فى بعض الحالات.
أحذر: الصور من الإمتداد (.wmf) يجب إستخدامها  بأبعادها الطبيعيه لأنها تأخذ وقتا طويلا فى التحميل إذا عدل فى أبعادها .
ويمكنك أيضا إستخدام الإمتداد (.jpg) الذى يدعم كفاءه فى الصوره وسرعه فى التحميل.
هناك أشياء جميلة في حياتنا لكننا لانراها لاننا لانكلف أنفسنا محاولة النظر اليها.. وربما تشابه الايام والروتين يحجب الرؤية عنها

أغسطس 19, 2002, 04:57:01 مساءاً
رد #1

أبو عبدالرحمن

  • عضو متقدم

  • ****

  • 718
    مشاركة

    • مشاهدة الملف الشخصي
زيادة سرعة الرسوميات فى برامجك
« رد #1 في: أغسطس 19, 2002, 04:57:01 مساءاً »
أخي وحبيبي MGH

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

أغسطس 21, 2002, 09:14:40 مساءاً
رد #2

Mgh

  • عضو خبير

  • *****

  • 3536
    مشاركة

    • مشاهدة الملف الشخصي
زيادة سرعة الرسوميات فى برامجك
« رد #2 في: أغسطس 21, 2002, 09:14:40 مساءاً »
بالفعل يا أخى . أنا أعمل فى تلك السلسله عن الفيجوال بيزك و لكن تقابلنى عقبات فى وضع صور توضيحيه  فى الشرح .وأعانى أشد المعاناه فى الكتابه العربيه و وضع مصطلحات أجنبيه معها. ولكنى سأحاول إيجاد فكره مبتكره و أعدك أن تراها قريبا.



هناك أشياء جميلة في حياتنا لكننا لانراها لاننا لانكلف أنفسنا محاولة النظر اليها.. وربما تشابه الايام والروتين يحجب الرؤية عنها