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

مشروع Arabic PHP .NET Framework : م Drawing

مثبّت
بدأه الحسين في 29 أكتوبر 2004 · 4 رد · 5,145 مشاهدة · في أرشيف قسم منتدى PHP
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

بسم الله الرحمن الرحيم

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

وأرجو أن تكون حجرة البي أتش بي أصبحت الأن تأخذ نسق منظم إلي حدما

دعنا الأن نقوم بدهان تلك الحجرة من خلال المجموعة System.Drawing

المجموعة System.Drawing

توفر لنا هذه المجموعة القيام بمهام الرسم والتلوين

ومن خلال هذه المجموعة سوف نقوم ببناء Chart Control وذلك لاحقا عندما نتحدث عن المجموعة System.Web.UI.WebControls

ملاحظة : لإستخدام هذه المجموعة يجب أن تضمن الملف php_gd2.dll إلي فهرس ال php extension ثم تقوم بتعديل السطر التالي بملف php.ini

;extension=php_gd2.dll

إلي

extension=php_gd2.dll

تضم هذه المجموعة فئات عديدة وهي كما يلي

+ Point Class

تتميز هذه الفئة بالتالي :

- هذه الفئة مشتقة من الفئة Object الموجودة بالمجموعة System

- تتميز هذه الفئه بعنصرين x و y من خلالهم يمكننا تحديد موقع نقطه علي مسطح معين

+ Size Class

تتميز هذه الفئة بالتالي :

- هذه الفئة مشتقة من الفئة Object الموجودة بالمجموعة System

- تتميز هذه الفئه بعنصرين width و height من خلالهم يمكننا تحديد أبعاد مجسم ثنائي الأبعاد مثل المستطيل

+ Rectangle Class

تتميز هذه الفئة بالتالي :

- هذه الفئة مشتقة من الفئة Object الموجودة بالمجموعة System

- تعبر الفئة عن مستطيل ( ويتميز المستطيل بنقطة البدايه location ويكون موضعها من أعلي اليسار , وأبعاد المستطيل Size )

+ Font Class

تتميز هذه الفئة بالتالي :

- هذه الفئة مشتقة من الفئة Object الموجودة بالمجموعة System

- تعبر هذه الفئة عن الفنتات Fonts من خلال تحديد اسم الفونت FontName ( او مسار الفونت ) وحجم الفونت FontSize

- تستخدم عند إجراء رسم للنصوص

+ Color Class

تتميز هذه الفئة بالتالي :

- هذه الفئة مشتقة من الفئة Object الموجودة بالمجموعة System

- تعبر هذه الفئة عن لون معين من خلال تحديد قيم لدرجات اللون الأحمر والأزرق والأخضر

- تستخدم في تلوين وتعبئة الأشكال

+ Pen Class

تتميز هذه الفئة بالتالي :

- هذه الفئة مشتقة من الفئة Object الموجودة بالمجموعة System

- تعبر هذه الفئة عن قلم رسم يتميز هذا القلم بسمك سن القلم المستخدم للرسم width , ولون حبر القلم المستخدم في التلوين Color

- يستخدم القلم لإجراء عملية رسم الأشكال Drawing وليس للتعبه الأشكال Filling

+ Graphics Class

تتميز هذه الفئة بالتالي :

- هذه الفئة مشتقة من الفئة Object الموجودة بالمجموعة System

- تحتوي هذه الفئة علي الدوال الخاصة برسم وتعبئة الأشكال الهندسية

+ Bitmap Class

تتميز هذه الفئة بالتالي :

- هذه الفئة مشتقة من الفئة Object الموجودة بالمجموعة System

- يستخدم هذه الفئة كوعاء يتم الرسم عليه باستخدام فئة ال Graphics

ويوضح الشكل التالي تركيب المجموعة System.Drawing

(لاحظ أن الأعضاء أمثال الدوال والثوابت والمتغيرات التي تحتها خط تعبر عن أعضاء إستاتيكية Static members

والأعضاء المائلة italic هي أعضاء مجردة abstract

وأيضا لم أقم بإدراج الأعضاء التي أري أنها يجب أن تكون ذات مستوي رؤية internal أو Friend )

SystemDrawing.gif

لاحظ أن المجلد System.Drawing يحتوي علي التالي

- الملف Bitmap.php يحتوي علي الفئة Bitmap

- الملف Color.php يحتوي علي الفئة Color

- الملف Font.php يحتوي علي الفئة Font

- الملف Graphics.php يحتوي علي الفئة Graphics

- الملف Pen.php يحتوي علي الفئة Pen

- الملف Point.php يحتوي علي الفئة Point

- الملف Rectangle.php يحتوي علي الفئة Rectangle

- الملف Size.php يحتوي علي الفئة Size

كيف يمكننا إستخدام هذه الفئات :

سوف ندرج في مجلد ال bin مجموعة ال System.Drawing كما يلي

Img1-6.gif

يمكننا إستخدام تلك الفئات من خلال عمل تضمين including لمحتويات الملف التالي

WebApplication5/bin/System.Drawing.php

وهذا هو محتوي الملف

<?
include_once "System.php";
include_once "System.Collections.php";

include_once "System.Drawing/Point.php";
include_once "System.Drawing/Size.php";
include_once "System.Drawing/Rectangle.php";
include_once "System.Drawing/Font.php";
include_once "System.Drawing/Color.php";
include_once "System.Drawing/Pen.php";
include_once "System.Drawing/Graphics.php";
include_once "System.Drawing/Bitmap.php";
?>

مثال

<script language="php">
include_once "../bin/System.Drawing.php";
    
    $bitmap = new Bitmap(new Color(255,255,0), 300, 350 );
    $dc = $bitmap->CreateGraphics();

    $rect1 = new Rectangle( new Point(40,100), new Size(130,70) );
    $rect2 = new Rectangle( new Point(120,70), new Size(130,70) );
   
    $rect3 = $rect1->Union($rect2);
	$dc->FillRectangle(new Color(255,0,0), $rect3);
    
    $bitmap->SaveAs("images/test0.jpg");
</script>
<img src="images/test0.jpg">

ويكون الناتج كما يلي

6-%20test0.jpg

مثال أخر

<script language="php">
include_once "../bin/System.Drawing.php";
    
    $bitmap = new Bitmap(new Color(255,255,0), 300, 400 );
    
    $bitmap->SetPixel(110, 50, new Color(255,0,0) );
    $bitmap->SetPixel(115, 50, new Color(255,0,0) );
    $bitmap->SetPixel(120, 50, new Color(255,0,0) );
    
    echo "<pre>";
    print_r( $bitmap->GetPixel(120, 50) );
    print_r( $bitmap->GetPixel(121, 120) );
    echo "</pre>";
    
    $dc = $bitmap->CreateGraphics();

    $font = new Font("fonts/trado.ttf",14);
    $dc->DrawString("ArabTeam GDI+", $font, new Color(0,0,255), new Point(10, 40) );

    $rect1 = new Rectangle( new Point(40,100), new Size(130,70) );
    $dc->FillRectangle(new Color(0,255,0), $rect1);
    
    $rect2 = new Rectangle( new Point(120,70), new Size(130,70) );
    $dc->FillRectangle(new Color(0,0,255), $rect2);
    
    echo "<br>is intersect with : " . $rect1->IntersectWith($rect2) ."<br>";
    echo "<br>rect2 is Contains : " . $rect2->Contains( new Point(123,72) ) ."<br>";
    
    if( $rect1->IntersectWith($rect2) ) {
        $rect3 = $rect1->Intersect($rect2);
  $dc->FillRectangle(new Color(255,0,0), $rect3);
    }
    
    $bitmap->SaveAs("images/test1.jpg");
</script>
<img src="images/test1.jpg">

ويكون الناتج كما يلي

6-%20test1.jpg

مثال أخر

<script language="php">
include_once "../bin/System.Drawing.php";
    
    $bitmap = new Bitmap(new Color(220,220,0), 300, 400 );
    $dc = $bitmap->CreateGraphics();
    
    $font = new Font("fonts/trado.ttf",14);
    $dc->DrawString("HI GDI+", $font, new Color(0,0,255), new Point(180, 150) );
    $dc->DrawString("HI GDI+", $font, new Color(255,0,255), new Point(170, 150) ,90);
    
    $bitmap->SaveAs("images/testString1.jpg");   
</script>
<img src="images/testString1.jpg">

ويكون الناتج كما يلي

6-%20testString1.jpg

وقد أرفقت هنا مثال لإستخدام المجموعة System.Drawing

(لاحظ أن هذا الإطار يعمل مع الإصدار الخامس PHP5)

في إنتظار اي إستفسار في هذا الموضوع

انتظروني قريبا مع الدرس القادم والمجموعة System.IO , والله الموفق

WebApplication5.rar

29_5.gif

سورة العنكبوت

ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ

مشروع Arabic PHP.NET

حلم طالما كان يراودني حتي قهرته بحمد الله ليكون حقيقة

ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ

سلسلة أنماط التصاميم البرمجية Desgin Patterns

سلسلة أنماط التصاميم البرمجية Desgin Patterns | كتيب هذه الدروس (إعداد أحمد غريب)

ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ

كنترول ASP.NET DataGrid CheckBoxColumn

كنترول ProgressBar

كنترول UltraPanel

مشروع الكنترول الأنيق (إهداء للفريق العربي)

الورش الإلكترونية IT Workshops

تعقب الأخطاء error tracing

كنترول ColorPicker لمطوري الويب

RichTextBox Control لمطوري ال ASP.Net

حمل كتاب جافا سكربت عربي

#2

السيد حسين المحرم

اقدر جهودك هذه و فعلا الـ Source الموجود ضمن البرنامج رهيب

لكن و بكل صراحة انا لم اعرف كيف استخدمه

ارجو منك ان تساعدنا في طريقة تركيبه

و ان تشرح لنا اكثر عن اهمية ما تفعل

و الشكر الجزيل لجهودك

Let's google help you Before ask

--------------------------

My Blog : www.phplover.net

#3

ذكر الاخ حسين بانك تستطيع استعمال هذا على حساب يدعم ال PHP5.

راكان الحنيطي

Be Open Source

opensource-550x4752.gif

#4

حتى الان لم أجرب php5 ولكننى أخزن المشاركات حتى إذا حصلت على php5 النسخة النهائية سأبدأ باستخدامها :)

أعرف التعب الذى تتحمله أخى الحسين ولكنه إن شاء الله لن يضيع هباء ويكفى أنك تنظم الphp فى اطار عربى سيظهر أثره عما قريب بإذن الله :)

#5

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

Let's google help you Before ask

--------------------------

My Blog : www.phplover.net

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