A-AA+then

การ Resize ภาพ ได้ที่ล่ะหลาย ๆ ภาพ และทำ Thumnail

1,253
ผมได้ดูจากบทความของอาจารย์แล้ว ไม่เข้าใจตรงที่จะเอามาใช้ได้อย่างไรครับ ถึงจะทำ Thumnail ได้ และผมจะมาดัดแปลงทำอัพทีเดียวหลาย ๆ ไฟล์ได้หรือไม่

<? function resizeImage($source, $target, $name, $width) {
  // Exif
  $imageinfo = getImageSize($source);
  // ปรับขนาดรูปถ้า $source มีขนาดใหญ่กว่าค่า $width
  if ($imageinfo[0] > $width || $imageinfo[1] > $width) {
   //คำนวณขนาดใหม่
   if ($imageinfo[0] <= $imageinfo[1]) //รูปสูงกว่ากว้าง
    {
    $h = $width;
    $w = round($h * $imageinfo[0] / $imageinfo[1]);
   } else {
    $w = $width;
    $h = round($w * $imageinfo[1] / $imageinfo[0]);
   }
   switch ($imageinfo[mime]) {
    case 'image/gif':
     $o_im = imageCreateFromGIF($source);
     break;
    case 'image/jpg':
    case 'image/jpeg':
    case 'image/pjpeg':
     $o_im = imageCreateFromJPEG($source);
     break;
    case 'image/png':
    case 'image/x-png':
     $o_im = imageCreateFromPNG($source);
     break;
   }
   // สร้าง รูป jpg จากรูปที่ส่งเข้ามา
   $o_wd = @imagesx($o_im);
   $o_ht = @imagesy($o_im);
   // สร้าง image ใหม่ ขนาดที่กำหนดมา
   $t_im = @ImageCreateTrueColor($w, $h);
   // วาดลงบน image ใหม่
   @ImageCopyResampled($t_im, $o_im, 0, 0, 0, 0, $w + 1, $h + 1, $o_wd, $o_ht);
   // jpg เท่านั้น
   $newname = substr($name, 0, strrpos($name, '.')).'.jpg';
   if (!@ImageJPEG($t_im, $target.$newname)) {
    $ret = false;
   } else {
    $ret[name] = $newname;
    $ret[width] = $w;
    $ret[height] = $h;
   }
   @imageDestroy($o_im);
   @imageDestroy($t_im);
   return $ret;
  } elseif (@copy($source, $target.$name)) {
   $ret[name] = $name;
   $ret[width] = $imageinfo[0];
   $ret[height] = $imageinfo[1];
   return $ret;
  }
  return false;
 }
?>


<?php
  $image = resizeImage($_FILES[iconupload][tmp_name], $album_dir, $picture, $config[album][pic_width]);
  if(!$image) {
    echo 'ไม่สามารถอัปโหลดรูปภาพได้';
  } else {
    print_r($image); 
  }
?>




จากโค้ดนี้ผมยังงงครับ ว่าจะเอามาใช้ได้อย่างไร ใช้ตอนเอารูปออกมาโชว์ หรือ ตอนโพสครับ กำหนดค่าไม่ถูกจริง ๆ ครับ รบกวนช่วยแนะนำด้วยครับ หากมีตัวอย่างให้ดาว์นโหลดจะขอบคุณยิ่งนักครับผม ขอบพระคุณล่วงหน้าครับ


1 ความคิดเห็น

เอ ตัวอย่างการใช้ก็มีนี่ครับ

$image = resizeImage($_FILES[iconupload][tmp_name], $album_dir, $picture, $config[album][pic_width])

หมายถึงเราจะ resize ตอนอัปโหลดครับ ให้ทำการสังเกตุโค้ดกันนิดนึงครับ ชื่อแต่ละอย่างก็สื่อความหมายของมันครับ

ส่วนการ resize ทีละหลายๆไฟล์ทำได้ครับ ตามจำนวนการอัปโหลดที่เข้าไป ซึ่งขึ้นกับการออกแบบ เรียกฟังก์ชั่นนี้ 1 ครั้ง resize ได้ 1 ไฟล์ครับ

ถ้าจะทำ คงต้องศึกษาและนำมาใช้ร่วมกันหลายๆบทความครับ บทความที่เกี่ยวข้องมีอยู่แล้วทั้งหมดบนเว็บ ซึ่งต้องประยุกต์ใช้เอาครับ
1
^