|
|
|
สอบถามปัญหา การเปลี่ยน resolution (การ resize ภาพ) แล้วนำแสดงภาพ ช่วยหน่อยนะครับ |
|
|
|
|
|
|
|
Quote:ทำการ resize ภาพให้มีขนาดเล็กน้อย แต่แสดงภาพเป็นภาพใหญ่ ??
ลองดูตัวอย่างผมมะ (ไม่แนะนำก้อบ ควรอ่านดู)
Code (PHP)
/**
* บันทึกรูปที่ถูกอัพโหลด และปรับขนาดได้ตามพารามิเตอร์
* รับไฟล์ชนิด gif, jpeg, png
*
* @param array $_FILES['va_name'] ที่ถูกอัพโหลดขึ้นมา
* @param string พาร์ทไฟล์ที่บันทึก
* @param int optional จำกัดขนาดความกว้างของภาพ ถ้าส่งมาต้องส่งพารามิเตอร์ตัวสุดท้ายมาด้วย
* @param int จำกัดขนาดความสูงของภาพ
* @return boolean
*/
public static function upload_picture($file_upload, $dest_jpg, $limit_width=0, $limit_height=0)
{
// เพิ่มหน่วยความจำ
ini_set('memory_limit', '30M');
// ตรวจสอบชนิดและสร้าง รีซอร์สของภาพจากไฟล์ที่ถูกอัพโหลด
switch ($file_upload['type'])
{
case 'image/gif':
$source = imagecreatefromgif($file_upload['tmp_name']);
break;
case 'image/pjpeg':
case 'image/jpeg':
$source = imagecreatefromjpeg($file_upload['tmp_name']);
break;
case 'image/x-png':
case 'image/png':
$source = imagecreatefrompng($file_upload['tmp_name']);
break;
default:
return FALSE;
}
// ดึงขนาดปัจจุบัน
list($w, $h) = getimagesize($file_upload['tmp_name']);
//หาขนาดใหม่
$nw = $w;
$nh = $h;
if($limit_width AND $limit_height) // ได้เซตค่าฟิกขนาดมา
{
if ($w > $limit_width || $h > $limit_height ) // เลือกด้านที่จะมาคำนวณ หาขนาดอีกด้านใหม่
{
if ($w > $h) // เอาความกว้างมา หาขนาดความสูงใหม่ หากว่ากว้างมากกว่าสูง
{
$nw = $limit_width;
$nh = ceil(($limit_width * $h) / $w);
}
else // เอาความสูงมาหาขนาดความกว้างใหม่ หากว่าสูงมากกว่ากว้าง
{
$nh = $limit_height;
$nw = ceil(($limit_height * $w) / $h);
}
}
}
// สร้างภาพเปล่าใหม่
$dest = imagecreatetruecolor($nw, $nh);
// เอารีซอร์สภาพเก่ามาใส่ภาพเปล่า ตามชนาด (auto resize)
imagecopyresampled($dest, $source, 0, 0, 0, 0, $nw, $nh, $w, $h);
// บันทึกภาพและคืนค่ากลับ
return imagejpeg($dest, $dest_jpg);
}
|
|
|
|
|
Date :
2010-12-15 21:19:37 |
By :
pjgunner.com |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 04
|