欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2022-04-08 17:46:05
复制代码 代码如下:    function resizeimage($srcfile,$mysize){   ...
复制代码 代码如下:

    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)."/>";