שינוי גודל תמונה באתר

prof5

New member
שינוי גודל תמונה באתר

שלום, אני בונה אתר בphp לפרויקט בלימודים. אני משתמשת בcodeigniter.
אני מנסה לבנות גלרייה של תמונות, אני מקטינה את התמונות כיוון שהן גדולות מדי על המחשב, התמונות עולות, אך בגודל המקורי שלהן.
אשמח לעזרה, אם תוכלו להסביר לי מדוע הקוד לא עובד...

זה מה שנמצא במודל-


function Gallery_model() {
//parent::CI_Model();

$this->gallery_path = realpath(APPPATH . '../images');
}

function do_upload() {

$config = array(
'allowed_types' => 'jpg|jpeg|gif|png',
'upload_path' => $this->gallery_path,
);

$this->load->library('upload', $config);
$this->upload->do_upload();

$image_data = $this->upload->data();

$config= array(
'source_image' => $image_data['full_path'],
'maintain_ration' => true,
'width' => 75,
'height' => 50
);

$this->load->library('image_lib', $config);
$this->image_lib->resize();

}


אני מתחילה בphp כך שאשמח להסבר למתחילים

תודה
 

bnayal

New member
לפי התיעוד של CI, אמור להישמר לך

קובץ נוסף באותו מיקום בשם עם תוספת בשם הקובץ _thumb.
אבל שימי לב שכתבת לא נכון את ההגדרה maintain_ratio/
בכל מקרה את יכולה לבדוק האם יש שגיאות, תקראי על זה גם כן בתיעוד
זה צריך להיות משהו כזה

if ( ! $this->image_lib->resize())
{
echo $this->image_lib->display_errors();
}

התיעוד של המחלקה הזאת נמצא כאן:
http://ellislab.com/codeigniter/user-guide/libraries/image_lib.html

ברוכה הבאה לPHP,
בניה
 

prof5

New member
אוף! אני ממש נואשת...

כבר עברתי על התיעוד של המחלקה הזאת לפני שכתבתי פה את ההודעה הראשונה.

לפי מה שהבנתי- זה יוצר תמונה חדשה עם תוספת של _thumb רק אם כותבים $config['create_thumb'] = TRUE;

בכל מקרה, לא נוצרת לי בתיקיה שום תמונה חדשה ולא בתת תיקיה ששמה thumbs שיצרתי והגודל של התמונה לא משתנה!

הוספתי קוד:

if ( $this->image_lib->resize())
{
echo "yay";
}else{
echo $this->image_lib->display_errors();
}


וזה כותב yay אבל גודל התמונה לא משתנה.
למישהו יש רעיון איך זה הגיוני/מה צריך לעשות?
הגודל של התמונות ענק וא"א להציג אותם ככה באתר....

תודה
 

bnayal

New member
הקוד הבא עובד לי יופי:

http://phpassist.com/b7af9#2

הוא מוריד תמונה גדולה מפייסבוק, שומר אותה לשרת בשם כלשהו, ואז נכנס החלק שרלוונטי לך - ההקטנה של התמונה, ובסוף הוא מציג את התמונה מאותו קובץ.

אני מציע לך לבדוק שה source_image שאת מציבה להקטנה זאת באמת תמונה קיימת ולוודא שזה אותו קובץ שעליו את מסתכלת שאת בדוקת האם התמונה הוקטנה או לא.

דבר נוסף,
דברים כמו ביצוע של Upload עדיף לעשות ב Controller ולא במודל. למודל שולחים את המיקום של הקובץ והוא עושה איתו את הפרוצדורות שהוא צריך מהקבץ (משייך אותו למשתמש, מגדיר אותו בתור לוגו לאתר או כל דבר אחר שתרצי לעשות).

בניה
 
למעלה