php实现图片按比例截取的方法

作者:袖梨 2022-06-24

 

 代码如下复制代码

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');

 

相关文章

精彩推荐