public static function create_new_img($file,$width,$height) {
if(!function_exists("ImageCopyResampled")){
k::msg("你的空间不支持ImageCopyResampled函数,请与空间商取得联系。");
}
//获取图片原始大小,数组0是高 1是宽
$arr=getimagesize($file);
$newim = imagecreatetruecolor($width, $height); //新建一个画布
$im = imagecreatefromjpeg($file); //将原始文件读入
//imagecopyresampled($newim, $im, 0, 0, 0,0, $width, $height,$arr[0] ,$arr[1] );
imagecopyresized($newim, $im, 0, 0, 0,0, $width, $height,$arr[0] ,$arr[1] ); // 原始尺寸 120 x 42
return $newim;
}
我用这个方法去将我的图片缩小到$width,$height(假设这里是240x180),而实际图片是1440x900。
缩小的图片会非常的难看,就象被压缩了一样。
我希望效果象WINDOWS图画工具里的缩小一样,你懂我的意思吧= =
明白你的意思
期待高手出现!
这个应该是等比例缩小的问题,长缩小了1/4,宽也要缩小1/4才不会变形:
/**
* arr的长和宽等比例缩小至$arrTo resize(array($array['width'],$array['height']), array(160,120))
* @return unknown
*/
function resize($arr, $arrTo ){
$arr[0] = $arr[0]>10 ? $arr[0] : $arrTo[0];
$arr[1] = $arr[1]>10 ? $arr[1] : $arrTo[1];
$arrTo