PHP等比例生成缩略图

/**
      * 等比例生成缩略图
      * @param $imgSrc
      * @param $resize_width
      * @param $resize_height
      * @param $isCut
      * @author james.ou 2011-11-1
      */
     public  function  reSizeImg( $imgSrc $resize_width $resize_height $isCut  = false) {
         //图片的类型
         $type  substr ( strrchr ( $imgSrc "." ), 1);
         //初始化图象
         if  ( $type  ==  "jpg" ) {
             $im  = imagecreatefromjpeg( $imgSrc );
         }
         if  ( $type  ==  "gif" ) {
             $im  = imagecreatefromgif( $imgSrc );
         }
         if  ( $type  ==  "png" ) {
             $im  = imagecreatefrompng( $imgSrc );
         }
         //目标图象地址
         $full_length  strlen ( $imgSrc );
         $type_length  strlen ( $type );
         $name_length  $full_length  $type_length ;
         $name  substr ( $imgSrc , 0,  $name_length  - 1);
         $dstimg  $name  "_s."  $type ;
 
         $width  = imagesx( $im );
         $height  = imagesy( $im );
 
         //生成图象
         //改变后的图象的比例
         $resize_ratio  = ( $resize_width ) / ( $resize_height );
         //实际图象的比例
         $ratio  = ( $width ) / ( $height );
         if  (( $isCut ) == 1) {  //裁图
             if  ( $ratio  >=  $resize_ratio ) {  //高度优先
                 $newimg  = imagecreatetruecolor( $resize_width $resize_height );
                 imagecopyresampled( $newimg $im , 0, 0, 0, 0,  $resize_width $resize_height , (( $height ) *  $resize_ratio ),  $height );
                 ImageJpeg( $newimg $dstimg );
             }
             if  ( $ratio  $resize_ratio ) {  //宽度优先
                 $newimg  = imagecreatetruecolor( $resize_width $resize_height );
                 imagecopyresampled( $newimg $im , 0, 0, 0, 0,  $resize_width $resize_height $width , (( $width ) /  $resize_ratio ));
                 ImageJpeg( $newimg $dstimg );
             }
         else  //不裁图
             if  ( $ratio  >=  $resize_ratio ) {
                 $newimg  = imagecreatetruecolor( $resize_width , ( $resize_width ) /  $ratio );
                 imagecopyresampled( $newimg $im , 0, 0, 0, 0,  $resize_width , ( $resize_width ) /  $ratio $width $height );
                 ImageJpeg( $newimg $dstimg );
             }
             if  ( $ratio  $resize_ratio ) {
                 $newimg  = imagecreatetruecolor(( $resize_height ) *  $ratio $resize_height );
                 imagecopyresampled( $newimg $im , 0, 0, 0, 0, ( $resize_height ) *  $ratio $resize_height $width $height );
                 ImageJpeg( $newimg $dstimg );
             }
         }
         ImageDestroy( $im );
     }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值