أرشيف انكور
(نسخة قابلة للطباعة من الموضوع)
https://archive.iinkor.com/t2012
أنقر هنا لمشاهدة الموضوع بهيئته الأصلية

كيفية تفعيل و استخدام إمتداد GD الخاص بـ PHP
Admin 13-09-2022 02:06 مساءً
بسم الله الرحمن الرحيم

كيفية تفعيل و استخدام إمتداد GD الخاص بـ PHP

مقدمة
GD هو ملحق للغة البرمجة PHP من خلاله يمكن إنشاء صور و عرضها على المتصفح.
لمعرفة التنسيقات التي يدعمها GD ، استخدم وظيفة gd_info في الـ "PHP".
كما هو معلوم، أي ملف بصغة الـ "php"، يتم تشغيله على سرفر.
و نحن في مثالنا هذا، مطالبون بإنشاء ملف بهذا الإمتداد لتجربة ما سنقوم به.
أول خطوة، هي تنصيب السرفر أو الخادم. ثم يأتي تفعيل الإمتداد.

إنشاء الملف و تشغيله

سنقوم بإنشاء مجلد "C:/xampp/htdocs/test" ، ثم نضيف بداخله ملف "image..php"

المسار الكامل للملف
CODE
C:/xampp/htdocs/test/image.php<br />
<br />


الكود :
CODE
// مفغل "gd" تحقق مما إذا كان امتداد
$ext = extension_loaded('gd2')? extension_loaded('gd2'):extension_loaded('gd');
if (!$ext) {
    exit('"php.ini" من على الملف "gd" لاستخدام الصور ، يجب عليك تفعيل الامتداد');
}

//(100 * 25) إنشاء صورة جديدة
$im = imagecreate(100, 25);

// الألوان والنصوص المستخدمة
//$whitebg   = imagecolorallocate($im, 255, 255, 255);
//$orangebg  = imagecolorallocate($im, 249, 147, 8);
$bluebg      = imagecolorallocate($im, 3, 52, 70); // Alloue une couleur pour une image

$bluecolor   = imagecolorallocate($im, 0, 0, 255);
$orangecolor = imagecolorallocate($im, 249, 147, 8);
$whitecolor  = imagecolorallocate($im, 255, 255, 255);
$blackcolor  = imagecolorallocate($im, 0, 0, 0);

// أضف جملة
imagestring($im, 5, 14, 5, 'iTabCode', $whitecolor);

//(header) ".png" إعلان رأس يتوافق مع عرض صورة بامتداد
header('Content-type: image/png');

// عرض الصور
imagepng($im);

// تحرير الذاكرة
imagedestroy($im);



سنعيد نفس المثال، لكن باستعمال نمط خط معين، نكون قد اخترناه مسبقا.
الخط، سيكون عبارة عن ملف بامتداد "gdf."
(Graphic Design Fonts)
يمكن لنا أن نختار ما نشاء من الأنماط من لمشاهدة الروابط يلزمك التسجيل

عند الولوج إلى الصفحة:
1) نذهب إلى العمود Download أقصى اليمين
2) نقوم بالنقر على الخط أو النمط المراد استعماله.
captur10

بعد تحميل ملف الخط، نقوم بحفظه داخل المجلد الذي قمنا بإنشائه سابقا "test" على المسار التالي:
CODE
C:/xampp/htdocs/test/fonts<br />
<br />

سأستعمل في هذا المثال، ملف الخط "04b.gdf" الممكن تحميله لمن أراد من:
CODE
https://github.com/18bergen/webside/raw/master/www/fonts/04b.gdf<br />
<br />

سنقوم في مرحلة أولى بتغيير طول و عرض الصورة​
CODE
//(200 * 40) إنشاء صورة جديدة<br />
$im = imagecreate(200, 40);<br />
<br />

ثم سنقوم بتعريف و استعمال الخط المراد استعماله. طبعا لكل ما أراد.
لتغيير نمط الخط، ما عليك سوى استبدال الملف فقط.
عوضا عن "04b.gdf"، استعمل الخط الذي قمت بتحميله.​
CODE
$font = imageloadfont('./fonts/04b.gdf');
imagestring($im, $font, 14, 10, 'iTabCode', $whitecolor);


كود الملف "image.php" بعد التعديل عليه​
CODE
<?php
// على الخادم لتكون المكتبة متوافقة مع الإصدار PHP اتحقق من إصدار الـ
if (version_compare(PHP_VERSION, '8.1.0') >= 0) { // 8.1.0 ما لا يقل عن الإصدا
    // مفغل "gd" تحقق مما إذا كان امتداد
    $ext = extension_loaded('gd2')? extension_loaded('gd2'):extension_loaded('gd');
    if (!$ext) {
        exit('"php.ini" من على الملف "gd" لاستخدام الصور ، يجب عليك تفعيل الامتداد');
    }else{
        //(200 * 40) إنشاء صورة جديدة
        $im = imagecreate(200, 40);

        // الألوان والنصوص المستخدمة
        //$whitebg   = imagecolorallocate($im, 255, 255, 255);
        //$orangebg  = imagecolorallocate($im, 249, 147, 8);
        $bluebg      = imagecolorallocate($im, 3, 52, 70);

        $bluecolor   = imagecolorallocate($im, 0, 0, 255);
        $orangecolor = imagecolorallocate($im, 249, 147, 8);
        $whitecolor  = imagecolorallocate($im, 255, 255, 255);
        $blackcolor  = imagecolorallocate($im, 0, 0, 0);

        // استخدام الخط
        // والإصدارات الأحدث PHP 8.1.0 من إصدار
        $font = imageloadfont('./fonts/04b.gdf'); //(gdf => Graphic Design Fonts)

        // أضف جملة
        imagestring($im, $font, 14, 10, 'iTabCode', $whitecolor);

        //(header) ".png" إعلان رأس يتوافق مع عرض صورة بامتداد
        header('Content-type: image/png');

        // عرض الصور
        imagepng($im);

        // تحرير الذاكرة
        imagedestroy($im);
    }
}else{
    exit(" الإصدار 8.1.0 PHP على الأقل تتطلب GdFont");
}


كما لحظنا في الكود، قد قمنا بتحسين عملية التحقق بإضافة شرط
CODE
if (version_compare(PHP_VERSION, '8.1.0') >= 0)


و ذلك لضمان سير العملية، و توافق المكتبة مع إصدار الـ "PHP 8.1.0 " أو أعلى.

المصدر : أكتب كود
بالتوفيق للجميع
والسلام ختام
أرشيف انكور

Copyright © 2009-2025 PBBoard® Solutions. All Rights Reserved