越简单越好!

图片按比例截取

发表于 2007-06-29 15:22 | 1001次阅读 0次点赞   PHP

$filename = 'img/test.jpg';

$all_type = array(
"jpg"    => array("create"=>"ImageCreateFromjpeg", "output"=>"imagejpeg"   , "exn"=>".jpg"),
"gif"    => array("create"=>"ImageCreateFromGIF" , "output"=>"imagegif"    , "exn"=>".gif"),
"jpeg"   => array("create"=>"ImageCreateFromjpeg", "output"=>"imagejpeg"   , "exn"=>".jpg"),
"png"    => array("create"=>"imagecreatefrompng" , "output"=>"imagepng"    , "exn"=>".png"),
"wbmp"   => array("create"=>"imagecreatefromwbmp", "output"=>"image2wbmp" , "exn"=>".wbmp")
);

$imgtype = getimagesize($filename);
$width = $imgtype[0];
$height = $imgtype[1];
$type = str_replace('image/','',$imgtype['mime']);

$func_create = $all_type[$type]['create'];
$func_output = $all_type[$type]['output'];

$x = $y =0;
if(($width * 100)>($height * 120))
{
$newwidth = ceil($height * 120/100);
$newheight = $height;
$x = ($width-$newwidth)/2;
}
elseif(($width * 100)<($height * 120))
{
$newheight = ceil($width * 100/120);
$newwidth = $width;
$y = ($height-$newheight)/2;
}
else
{
$newheight = $height;
$newwidth = $width;
}


// Load
$thumb = imagecreatetruecolor($newwidth, $newheight);
$source = $func_create($filename);

// Resize
imagecopyresized($thumb, $source, 0, 0, 0, 0, $newwidth, $newheight, $newwidth, $newheight);

// Output
$func_output($thumb,'a.jpeg');

返回顶部 ^