23-08-2010, 21:07
|
|
|
|
חבר מתאריך: 17.11.05
הודעות: 5,696
|
|
פונקציה שאני משתמש בה עבור פרוייקט מסויים:
קוד PHP:
function createthumb($filename,$thumbnail,$new_w,$new_h){ $filename=strtolower($filename); $filename=explode('.',$filename);
if (preg_match('/jpg|jpeg/',$filename[1])){ $src_img=imagecreatefromjpeg($filename); } if (preg_match('/png/',$filename[1])){ $src_img=imagecreatefrompng($filename); } $old_x=imageSX($src_img); $old_y=imageSY($src_img); if ($old_x > $old_y) { $thumb_w=$new_w; $thumb_h=$old_y*($new_h/$old_x); } if ($old_x < $old_y) { $thumb_w=$old_x*($new_w/$old_y); $thumb_h=$new_h; } if ($old_x == $old_y) { $thumb_w=$new_w; $thumb_h=$new_h; } $dst_img=ImageCreateTrueColor($thumb_w,$thumb_h); imagecopyresampled($dst_img,$src_img,0,0,0,0,$thum b_w,$thumb_h,$old_x,$old_y); if (preg_match("/png/",$filename[1])) { imagepng($dst_img,$thumbnail); } else { imagejpeg($dst_img,$thumbnail); } imagedestroy($dst_img); imagedestroy($src_img); }
הקריאה לפונקציה נעשית לאחר העלאת התמונה המקורית, לדוגמא:
קוד PHP:
$twidth = "320"; $theight = "300"; if(move_uploaded_file($tempLoc,$target_path)) createthumb($target_path,$target_path_thumb,$twidt h,$theight);
עריכה:
שים לב שהפונקציה שלי "מסורסת" כיוון שהיא מיועדת לפרוייקט מסויים בו מותר jpeg או png (לא gif) וכן שם הקובץ הוא רנדומי.
הפונקציה כמות שהיא לא תתמודד יפה עם שמות תמונות המכילים נקודה, למשל.
_____________________________________
נערך לאחרונה ע"י Zed3 בתאריך 23-08-2010 בשעה 21:10.
|