سنقوم بانشاء تابع مهمته نسخ صورة كبيرة من مسار معين و تصغيرها و تخزينها في مسار مختلف عن الاول. هذا التابع ياخذ كوسيط له :
1- مسار مع اسم الصورة الكبيرة.
2- مسار مع اسم الصورة الجديدة(المستنسخة).
3- عرض الصورة الجديدة حيث ان الارتفاع سيتم استنتاجه(تناسب رياضي).
التابع :
كود PHP:
function createthumb($name,$filename,$new_w){
$src_img=imagecreatefromjpeg($name);
$old_x=imageSX($src_img);
$old_y=imageSY($src_img);
$new_h=($old_y*$new_w)/$old_x;
$dst_img=ImageCreateTrueColor($new_w,$new_h);
imagecopyresampled($dst_img,$src_img,0,0,0,0,$new_w,$new_h,$old_x,$old_y);
imagejpeg($dst_img,$filename);
imagedestroy($dst_img);
imagedestroy($src_img);
}
على افتراض ان مجلد الصور الاساسية هو :
upload
و ان مجلد الصور المصغرة هو :
small
و ان الصور المصغرة المطلوبة هي ذات عرض 100 بكسل
ان استخدام التابع سيكون كمايلي :
كود PHP:
createthumb("upload/Waterlilies.jpg","small/Waterlilies.jpg",100);
ملاحظة : المثال كامل موجود ضمن المرفقات.. آمل ان يكون ذلك نافعا اخي..