21-11-2006, 16:49
|
|
|
חבר מתאריך: 21.09.02
הודעות: 408
|
|
אתה פשוט צריך להקטין את התמונה באופן פרופרציונאלי. השאלה היא האם אתה יוצר thumbnails (תמונות מוקטנות) על השרת או שאתה פשוט משתמש בHTML בשביל להציג את התמונה הגדולה בצורה מוקטנת (במקרה הזה, הפיתרון הראשון עדיף, אבל זאת כבר בחירה שלך).
במקרה הראשון, ישנו קוד שפירסמתי לפני כשנה באתר של PHP, אתה יכול להעזר בו באתר שלך, או ללמוד את העיקרונות ממנו ולבנות משהו שיותר יתאים לך. בעיקרון, אין פה ממש תיחכום אלא זה חישוב מתמטי פשוט לבדוק אם התמונה היא לאורך או לרוחב ולהקטין אותה בהתאם.
קוד PHP:
function saveThumbnail($saveToDir, $imagePath, $imageName, $max_x, $max_y) { preg_match("'^(.*)\.(gif|jpe?g|png)$'i", $imageName, $ext); switch (strtolower($ext[2])) { case 'jpg' : case 'jpeg': $im = imagecreatefromjpeg ($imagePath); break; case 'gif' : $im = imagecreatefromgif ($imagePath); break; case 'png' : $im = imagecreatefrompng ($imagePath); break; default : $stop = true; break; } if (!isset($stop)) { $x = imagesx($im); $y = imagesy($im); if (($max_x/$max_y) < ($x/$y)) { $save = imagecreatetruecolor($x/($x/$max_x), $y/($x/$max_x)); } else { $save = imagecreatetruecolor($x/($y/$max_y), $y/($y/$max_y)); } imagecopyresized($save, $im, 0, 0, 0, 0, imagesx($save), imagesy($save), $x, $y); imagegif($save, "{$saveToDir}{$ext[1]}.gif"); imagedestroy($im); imagedestroy($save); } }
במידה ובאמת מדובר בהקטנה ע"י HTML, העיקרון הוא זהה. כל שעליך לעשות הוא לשלוף את האורך והרוחב של התמונה ולבצע הקטנה בהתאם ע"י אותו חישוב מתמטי.
מקווה שתסתדר, אם לא אז פשוט שאל.
|