|
|
|
ขอถามเกี่ยวกับการ crop ภาพครับ ผมพยายามหาในบอร์ดแล้วแต่ไม่เจอ |
|
|
|
|
|
|
|
คือผมก็ค้นหาในนี้นะครับแล้วก็ทำได้ แต่ว่า พอผมกำหนดขนาดที่ต้องการ crop เป็น แนวนอน เช่น 980 x 200 ครับ ผลออกมาจะได้แนวตั้งตลอด และข้างๆ จะเป็นสีดำ ก็คือ ขนาดที่หลังจาก crop แล้วได้ตามที่เรากำหนด แต่ภาพที่แสดงหลังจาก crop ก็จะเป็นภาพเหมือนเราย่อไว้ตรงกลาง ส่วนด้านซ้ายและขวาเป็นสีดำทั้งสองข้าง ก็เลยงงว่าต้องปรับตรงไหนหรือเปล่าที่จะทำให้ภาพได้แนวนอนตามต้องการหลังจากการ crop
ผมได้ฟังก์ชั่นนีจากในเว็บนี้ครับ
Code (PHP)
function cropImage($nw, $nh, $source, $stype, $dest) {
$size = getimagesize($source);
$w = $size[0];
$h = $size[1];
switch($stype) {
case 'gif':
$simg = imagecreatefromgif($source);
break;
case 'jpg':
$simg = imagecreatefromjpeg($source);
break;
case 'png':
$simg = imagecreatefrompng($source);
break;
}
$dimg = imagecreatetruecolor($nw, $nh);
$wm = $w/$nw;
$hm = $h/$nh;
$h_height = $nh/2;
$w_height = $nw/2;
if($w> $h) {
$adjusted_width = $w / $hm;
$half_width = $adjusted_width / 2;
$int_width = $half_width - $w_height;
imagecopyresampled($dimg,$simg,-$int_width,0,0,0,$adjusted_width,$nh,$w,$h);
} elseif(($w <$h) || ($w == $h)) {
$adjusted_height = $h / $wm;
$half_height = $adjusted_height / 2;
$int_height = $half_height - $h_height;
imagecopyresampled($dimg,$simg,0,-$int_height,0,0,$nw,$adjusted_height,$w,$h);
} else {
imagecopyresampled($dimg,$simg,0,0,0,0,$nw,$nh,$w,$h);
}
imagejpeg($dimg,$dest,100);
}
Tag : PHP, MySQL
|
|
|
|
|
|
Date :
2011-10-14 13:09:12 |
By :
sakdalll |
View :
787 |
Reply :
3 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ลองดูค่าการคำนวณและการโยน argument ของความสูงและความกว้างครับ
|
|
|
|
|
Date :
2011-10-14 16:18:57 |
By :
webmaster |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
เหอะๆๆ บอกตรงๆ ครับ นั่งไล่ดูมาซักพักและครับ แต่ก็ยังดูไม่ออก แถมลองเปลี่ยนการคำนวณหลายรอบและ มันก็ยังเหมือนเดิมครับ รบกวนด้วยครับผม
|
|
|
|
|
Date :
2011-10-14 17:35:58 |
By :
sakdalll |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
จะเอาตาม ratio หรือว่า จะครอปแนวนอนอย่างเดียวครับ
ถ้าขี้เกียจไล่ หา phpThumb มาใช้ก็ได้นะ
|
|
|
|
|
Date :
2011-10-15 00:49:14 |
By :
ikikkok |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 02
|