הוסטס - פורום אחסון האתרים הגדול בישראל

הוסטס - פורום אחסון האתרים הגדול בישראל (https://hosts.co.il/forums/index.php)
-   פורום תיכנות (https://hosts.co.il/forums/forumdisplay.php?f=14)
-   -   [PHP]הקטנת תמונה? אפשרי? איך? (https://hosts.co.il/forums/showthread.php?t=10181)

HaMashiah 20-12-05 13:45

[PHP]הקטנת תמונה? אפשרי? איך?
 
שלום,
יש לי מין גלריה כזאת של הטיול השנתי שלי
ועשיתי אפשרות להעלאת תמונות לשרת עכשיו יש יל בעיה כזאת
הינה דוגמה למערכת:
http://www.akko-city.net/tiyul/
הבעיה היא זאת התמונות הקטנות לוקח להם מספר גדול של שניות להפתח
וזה למה?
כי שמתי את התמונות הגדולות רק הורדתי להם את הפיקסלים
השאלה היא כזה
יש פונקציה אשר מקטינה תמונה למספר שאני אקבע ושומרת בתיקיה?
אם יש זה מאוד יוכל לעזור לי..
בתודה,
עידן משיח

Tal Aviel 20-12-05 14:10

שלום שלום.

קודם כל, כל מה שאתה חושב שקיים אפשרי :)

הקטנת תמונה נעשת באמצעות GD.
GD הינה ספריה שאחראית על תמונות ב-PHP.

כתבתי פעם פונקציה שמקטינה תמוננה לגודל הרצוי ושומרת אותה.

תוכל להשתמש בה, אני לא בטוח שהיא הכי יעילה כי זה היה דיי מזמן, אבל גם תוכל ללמוד ממנה.

קישור ל-GD:
www.php.net/gd

הפונקציה שלי:
PHP קוד:

        function ImageResize($src,$width,$height,$output) {

            
$info explode(".",$src);
            
$ext strtolower($info[1]);

            if(
$ext == "jpeg" || $ext == "jpg") {
                
$source_image imagecreatefromjpeg($src);
            } elseif(
$ext == "gif") {
                
$source_image imagecreatefromgif($src);
            } else {
                die(
"Unknown image file type. (know only jpeg,jpg,gif) Filename supplied: $src");
            }

            
$filesize = (list($awidth,$aheight) = getimagesize($src));

            
$output_image imagecreatetruecolor ($width$height);

            
imagecopyresampled ($output_image$source_image0,0,0,0$width$height$awidth$aheight); 

            if(
$ext == "jpeg" || $ext == "jpg") {
                
imagejpeg ($output_image,$output,100);
            } else if (
$ext == "gif") {
                
imagegif($output_image,$output,100);
            }

            
imagedestroy ($source_image); 
            
imagedestroy ($output_image); 
        } 

כמו כן, הפונקציה תמוכת ב-GIF וב-JPEG,JPEG בלבד.
כמובן שניתן להוסיף PNG ללא שום בעיה, אם אתה רוצה תוסיף.

בהצלחה.
טל.

HaMashiah 20-12-05 16:45

PHP קוד:

$awidth$aheight 

שני המשתנים האלה מה הם בעצם?

Deagly 20-12-05 16:49

ציטוט:

נכתב במקור על ידי HaMashiah
PHP קוד:

$awidth$aheight 

שני המשתנים האלה מה הם בעצם?

הרוחב ואורך התמונה המקוריים של התמונה..

HaMashiah 20-12-05 16:55

PHP קוד:

<?

$dir
="./images/";
$output="./simages/";
$width="80";
$height="80";
$src="0.jpg";
function 
randFname($ext){
    global 
$dir;

    
$fname=0;
    while(
file_exists($dir.$fname.".".$ext)){
        
$fname++;
    }
    return 
$dir.$fname.".".$ext;
}
foreach(
$HTTP_POST_FILES as $f){
    
$arr=explode(".",$f['name']);
    
$ext=$arr[count($arr)-1];
    
move_uploaded_file($f['tmp_name'], randFname($ext));
}

 function 
ImageResize($src,$width,$height,$output) { 

            
$info explode(".",$src); 
            
$ext strtolower($info[1]); 

            if(
$ext == "jpeg" || $ext == "jpg") { 
                
$source_image imagecreatefromjpeg($src); 
            } elseif(
$ext == "gif") { 
                
$source_image imagecreatefromgif($src); 
            } else { 
                die(
"Unknown image file type. (know only jpeg,jpg,gif) Filename supplied: $src"); 
            } 

            
$filesize = (list($awidth,$aheight) = getimagesize($src)); 

            
$output_image imagecreatetruecolor ($width$height); 

            
imagecopyresampled ($output_image$source_image0,0,0,0$width$height$awidth$aheight);  

            if(
$ext == "jpeg" || $ext == "jpg") { 
                
imagejpeg ($output_image,$output,100); 
            } else if (
$ext == "gif") { 
                
imagegif($output_image,$output,100); 
            } 

            
imagedestroy ($source_image);  
            
imagedestroy ($output_image);  
        }  

echo 
"התמונות הועלו בהצלחה!";
?>

תראה ניסיתי לשלב את זה בתוך זה פה...
(ה-0.jpg סתם לניסיון)
עכשיו יש לי כמה שאלות
1. למה הוא לא שמר לי את התמונה בתיקיה?
2. מה המשתנה של השם של הקובץ במערכת הזאת והסיומת?
תודה לעוזרים

Tal Aviel 20-12-05 19:06

לא קראת בכלל לפונקציה.
אל תגש לדברים מסובכים שאינך יודע דברים בסיסים.

Kuchi 20-12-05 19:34

אני מציע שתעשה דף ניהול וברגע שתכנס לדף בלולאה הוא ישנה את כל הקבצים ולא מתי שאתה מעלה כי זה יכול לקחת לפעמים שנים !

Ikki 24-12-05 19:37

ציטוט:

נכתב במקור על ידי KuChI-PoChI
אני מציע שתעשה דף ניהול וברגע שתכנס לדף בלולאה הוא ישנה את כל הקבצים ולא מתי שאתה מעלה כי זה יכול לקחת לפעמים שנים !

להפך.

psycho 24-12-05 22:16

http://il2.php.net/manual/en/functio...opyresized.php


כל הזמנים הם GMT +2. הזמן כעת הוא 07:38.

מופעל באמצעות VBulletin גרסה 3.8.6
כל הזכויות שמורות ©
כל הזכויות שמורות לסולל יבוא ורשתות (1997) בע"מ