|
|
|
php จะทำการ resize ย่อรูปให้เล็กตามขนาดที่ต้องการ ทำไมบางทีขนาดมันใหญ่ขึ้นหว่า? |
|
|
|
|
|
|
|
จากที่พี่วินเคยตอบไว้ในกระทู้นี้
https://www.thaicreate.com/php/forum/001631.html
ผมลองเอามาแก้เป็น
Code (PHP)
<?
$images = "images/Better Together.jpg";
$width=600;
$new_images = resize_img($images,$width);
?>
<b>Original Size</b><br>
<img src="<?=$images;?>" width="<?php echo $width; ?>">
<hr>
<b>New Resize</b><br>
<img src="<?=$new_images;?>">
<?php
function resize_img($images,$size){
$temp = explode('/',$images);
$re_temp = array_reverse($temp);
$new_images = 'MyResize/rez_'.$re_temp[0];
$width = $size;
$size=GetimageSize($images);
$height=round($width*$size[1]/$size[0]);
unset($temp,$re_temp);
$temp = explode('.',$images);
$re_temp = array_reverse($temp);
$dot = trim(strtolower($re_temp[0]));
switch($dot){
case 'jpg': $images_orig = imagecreatefromjpeg($images); break;
case 'jpeg': $images_orig = imagecreatefromjpeg($images); break;
case 'png': $images_orig = imagecreatefrompng($images); break;
case 'gif': $images_orig = imagecreatefromgif($images); break;
}//switch
$photoX = ImagesX($images_orig);
$photoY = ImagesY($images_orig);
$images_fin = ImageCreateTrueColor($width, $height);
ImageCopyResampled($images_fin, $images_orig, 0, 0, 0, 0, $width+1, $height+1, $photoX, $photoY);
ImageJPEG($images_fin,$new_images);
ImageDestroy($images_orig);
ImageDestroy($images_fin);
return($new_images);
}//resize_img
?>
ปรากฎว่าภาพที่ย่อได้ บางครั้งขนาดมันใหญ่กว่าเดิมซะอีก
มีวิธีอื่นที่ดีกว่านี้หรือไม่ครับ?
หรือว่าผมพลาดตรงไหน?
Tag : PHP
|
|
|
|
|
|
Date :
2011-12-19 17:34:02 |
By :
iamatomix |
View :
2028 |
Reply :
2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
เป็นไปได้หรือเปล่าครับว่าภาพที่เอามาลง มัน เล็กกว่า ขนาดที่กำหนดไว้ ???
|
|
|
|
|
Date :
2011-12-19 18:13:12 |
By :
noomna19 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Size คุณภาพมันเล็กอยู่แล้ว พอรีไซต์ มันสร้างภาพใหม่เลยใหญ่กว่าเดิม
|
|
|
|
|
Date :
2011-12-19 19:32:38 |
By :
ผ่านมา |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 05
|