利用PHP实现图片等比例放大和缩小的方法详解

复制代码 代码如下:

  function resizeimage($srcfile,$mySize){

  $size=getimagesize($srcfile);

  switch($size[2]){

  case 1:

  $img=imagecreatefromgif($srcfile);

  break;

  case 2:

  $img=imagecreatefromjpeg($srcfile);

  break;

  case 3:

  $img=imagecreatefrompng($srcfile);

  break;

  }

    //源图片的宽度和高度

      $oldImg['w']=imagesx($img);

  $oldImg['h']=imagesy($img);

  if ($oldImg['w']<=$mySize['w'] && $oldImg['h']<156){

  $rate=1;

  }elseif ($oldImg['w']>$mySize['w'] && $oldImg['h']<$mySize['h']){

  $rate=$mySize['w']/$oldImg['w'];

  }elseif ($oldImg['w']<$mySize['w'] && $oldImg['h']>$mySize['h']){

  $rate=$mySize['h']/$oldImg['h'];

  }elseif ($oldImg['w']>$mySize['w'] && $oldImg['h']>$mySize['h']){

  $rate1=$mySize['w']/$oldImg['w'];

  $rate2=$mySize['h']/$oldImg['h'];

  if ($rate1>$rate2){$rate=$rate2;}else{$rate=$rate1;}

  }

  $newImg['w']=$oldImg['w']*$rate;

  $newImg['h']=$oldImg['h']*$rate;

  return "width=".$newImg['w']." height=".$newImg['h'];

  }

  应用实例

  

复制代码 代码如下:

  $mySize=array('w'=>143,'h'=>156);

  $imgSize=resizeimage("22.jpg",$mySize);

  echo "<img src=\"22.jpg\"".resizeimage("22.jpg",$mySize)."/>";