شوّيت: شبكة كرة قدم اجتماعية




العودة   سوالف سوفت > سوالف برمجة المواقع وتطويرها > PHP
التسجيل المدوّنات البحث مشاركات اليوم جعل الأقسام مقروءة

الرد على الموضوع
 
LinkBack أدوات الموضوع
عضو جديد
#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.'">';

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

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

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

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






__________________
:: صمم ::
ThePunisher is offline   قديم 05-01-2008, 10:12 PM
الرد مع إقتباس
عضو نشيط
#2  

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

>عبود






__________________
www.ksa4tech.com
sales@ksa4tech.com
إستضافة - سيرفرات - تصميم - ادارة و حماية سيرفرات
mr.saleh is offline   قديم 06-01-2008, 01:37 AM
الرد مع إقتباس
عضو جديد
#3  

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

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






__________________
:: صمم ::
ThePunisher is offline   قديم 06-01-2008, 06:35 AM
الرد مع إقتباس
عضو نشيط جدا
#4  

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

الى الامام .






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

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

[توقيعك يجب أن لا يكون أطول من 400 حرف يتضمن تجاوز كود المنتدى] - الى متى المعاناة يا حضرة الأدارة ؟
EbNCaNa is offline   قديم 06-01-2008, 01:41 PM
الرد مع إقتباس
عضو جديد
#5  

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






__________________
:: صمم ::
ThePunisher is offline   قديم 06-01-2008, 10:42 PM
الرد مع إقتباس
عضو سوبر نشيط
#6  

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

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

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






__________________
ومن اعجب الاشياء انك لاتدري وانك لاتدري بانك لاتدري
فإن كنت لاتدري ولم تكُ بالذي يسال من يدري فكيف اذن تدري
تمام العمى طول السكوت وانما شفاء العمى يوماً سؤالك من يدري
s6ur is offline   قديم 07-01-2008, 01:13 PM
الرد مع إقتباس
الرد على الموضوع


 

أدوات الموضوع

قوانين المشاركات
لا يمكنك كتابة مواضيع جديدة
لا يمكنك إضافة ردود
لا يمكنك إرسال مرفقات
لا يمكنك تعديل مشاركاتك

كود vB متاح
كود [IMG] متاح
كود HTML غير متاح
Trackbacks are متاح
Pingbacks are متاح
Refbacks are متاح


المواضيع المشابهه
الموضوع كاتب الموضوع القسم الردود آخر مشاركة
[درس] فن عمل حركة بالايميج ريدي DESIGN-1983 التصميم والرسومات والمونتاج 14 02-05-2006 12:59 AM
اكبر مكتبهـ في العالم للفوتوشوبـ !! kuwaiteye التصميم والرسومات والمونتاج 18 09-12-2005 01:18 AM
مجموعه روابط تخدم برامج التصميم .. فوتوشوب + فلاش + سويش + وغيره oO(الباسل)oO التصميم والرسومات والمونتاج 1 24-09-2004 02:14 PM
حان وقت الاحتراف FLy التصميم والرسومات والمونتاج 11 14-01-2004 10:55 AM
درس ( عمل تحديد متدرج جميل للصورة ) وهم التصميم والرسومات والمونتاج 12 30-05-2001 11:11 AM


جميع الأوقات بتوقيت غرينتش +3. الوقت الآن هو 06:37 AM.