النتائج 1 إلى 6 من 6

الموضوع: [درس] عمل انعكاس للصورة بأستخدام الـphp

  1. #1

    [درس] عمل انعكاس للصورة بأستخدام الـphp



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

    طرأت على بالي فكرة وحبيت اني انفذها واياكم وبحثت عنها ووجدت درس اجنبي وقمت بترجمته ^^

    اتمنى انها تفيدكم واي نقص فيها يا ريت تبلغوني

    الفكرة كالتالي

    نرفع صوره على الموقع ونخلي السكريبت يسوي انعكاس لها

    فكرة جدأ رائعه

    بسم الله

    بيكون عندنا ملفين الاول اسمه مثلا image.php والثاني بيكون مثلا index.php

    اول شي لازم نجيب اسم ملف الصورة وناخذ حجم الصورة

    كود PHP:
    $imgName $src
    $size getimagesize("$imgName"); 

    تابع الكود التالي:
    كود PHP:
    $imgImport imagecreatefromjpeg($imgName); 


    $imgName_w $size[0]; 
    $imgName_h $size[1]; 


    $gradientHeight 100
    في السطر الاول قمنا بتحميل الصورة الي مكتبة الـ GD الموجوده في الـPHP
    في الثاني قمنا بوضع قيم الطول والعرض للصورة
    وفي الثالث قمنا بتعيين المتغير الذي سيحمل طول الصورة الخاصة بالانعكاس

    لنقم الان بعمل الخلفية الخاصة بالصورة المنعكسة :
    كود PHP:
    $background imagecreatetruecolor($imgName_w$gradientHeight); 
    والان سنقوم بتعريف بعض المتغيرات الخاصة بلون خلفية الصورة والخط الفاصل بين الصورة الاساسية
    وصورة الانعكاس

    كود PHP:
    $gradientColor "255 255 255"//اللون 
    $gradparts explode(" ",$gradientColor);  
    $dividerHeight 1
    الان علينا ان نقوم بوضع بداية لبدء الانعكاس

    كود PHP:
    $gradient_y_startpoint $dividerHeight
    $gdGradientColor=ImageColorAllocate($background,$gradparts[0],$gradparts[1],$gradparts[2]); 
    سيقوم الكود التالي بعمل نسخة مطابقة للصورة الاصلية وقلبها راسا على عقب فنحن بحاجة الى القاع
    ومن ثم اضافتها الى الخلفية الفارغة

    كود PHP:
    $newImage imagecreatetruecolor($imgName_w$imgName_h);  
    for (
    $x 0$x $imgName_w$x++) { // سيبدأ من هنا بحساب الطول

        
    for ($y 0$y $imgName_h$y++)  // ومن هنا بحساب العرض
        

        
    imagecopy($newImage$imgImport$x$imgName_h $y 1$x$y11); //سينسخ الصورة
        


    // اضافة الى الخلفية الفارغة
    imagecopymerge ($background$newImage0000$imgName_w$imgName_h100); 
    والكود التالي سيقوم بأنشاء الانعكاس :

    كود PHP:
    //create from a the image so we can use fade out. 
    $gradient_line imagecreatetruecolor($imgName_w1); 

    // Next we draw a GD line into our gradient_line 
    imageline ($gradient_line00$imgName_w0$gdGradientColor); 


    $i 0
    $transparency 30//from 0 - 100 

        
    while ($i $gradientHeight//create line by line changing as we go 
        

            
    imagecopymerge ($background$gradient_line0,$gradient_y_startpoint00$imgName_w1$transparency); 
             
            ++
    $i
            ++
    $gradient_y_startpoint
                     
                    if (
    $transparency == 100) { 
                     
                        
    $transparency 100
                     
                    } 
                    else  
                    { 
                                 
    // this will determing the height of the 
                                         //reflection. The higher the number, the smaller the reflection.  
                                         //1 being the lowest(highest reflection) 
                        
    $transparency $transparency 1;  

                    } 
             
        } 

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

    كود PHP:
    header("(anti-spam-content-type:) image/jpeg"); 

    // عرض الخط الذي نريد رسمه 
    imagesetthickness ($background$dividerHeight); 

    // نرسم الخط 
    imageline ($background00$imgName_w0$gdGradientColor); 
    وهذا الكود لحفظ بعض الذاكرة ^^

    كود PHP:
    imagejpeg($background''100); 
    imagedestroy($background); 
    imagedestroy(gradient_line); 
    imagedestroy(newImage); 
    وبهذا نكون قد انتهينا من الملف الاول

    ونأتي للملف الثاني وهو بسيط جدا
    كود PHP:
    <style>body { background-color: white; }</style>

    <?php

    // Image name, handy for doubleclick-paste.
    $image 'wii_zelda';

    // Refix the .jpg extention
    $image $image.'.jpg';

    // Echo it out.
    echo '<img src="'.$image.'"><br /><img src="image.php?src='.$image.'">';

    ?>
    الحمد لله انتهيت من الموضوع

    واتمنى اشوف تطبيقاتكم ^^

    بالتوفيق للجميع

    المصادر
    الدرس
    الترجمة





    __________________
    :: صمم ::


  2. #2
    عضو نشيط
    تاريخ التسجيل
    Sep 2006
    المشاركات
    111


    يعطيك العافية محمد ^^

    >عبود





    __________________
    شركة نقطة استضافة
    مقرنا المملكة العربية السعودية - المدينة المنورة
    هاتف:- 0540062364
    موقع الشركة:- www.points4hos.com
    خدماتنا البرمجية باستخدام لغة PHP , Python , Java , java script

  3. #3


    حتى هون لاحقني :P

    الله يعافيك يا رب تسلملي عالمرور ^^





    __________________
    :: صمم ::

  4. #4
    عضو نشيط جدا
    تاريخ التسجيل
    May 2007
    المشاركات
    509


    بارك الله فيك اخوي على المجهود الرائع وان شاء الله نجرب الدالة ...

    الى الامام .





    __________________
    EbNCaNa اخوكم ابن قانا

    [درس] قائمة بريدية بأسهل الطرق بواسطة PHP

    [توقيعك يجب أن لا يكون أطول من 400 حرف يتضمن تجاوز كود المنتدى] - الى متى المعاناة يا حضرة الأدارة ؟

  5. #5


    بالتوفيق لك اخي ^^





    __________________
    :: صمم ::

  6. #6
    عضو نشيط جدا
    تاريخ التسجيل
    Sep 2006
    المشاركات
    589


    كود مميز وعمل متقن رائع

    ولكن الكود سيرهق السيرفر خصوصاً اذا كان الموضوع او الصفحه فيها صور كثيره

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





    __________________
    ومن اعجب الاشياء انك لاتدري وانك لاتدري بانك لاتدري
    فإن كنت لاتدري ولم تكُ بالذي يسال من يدري فكيف اذن تدري
    تمام العمى طول السكوت وانما شفاء العمى يوماً سؤالك من يدري





ضوابط المشاركة

  • لا تستطيع إضافة مواضيع جديدة
  • لا تستطيع الرد على المواضيع
  • لا تستطيع إرفاق ملفات
  • لا تستطيع تعديل مشاركاتك
  •  

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