• 图像等比例缩放的函数封装(PHP)


     1 <?php
     2 //图像等比例缩放函数
     3 /**
     4     *等比例缩放函数(以保存新图片的方式实现)
     5     *@param string $picname  被缩放的处理图片源
     6     *@param int $maxx 缩放后图片的最大宽度
     7     *@param int $maxy 缩放后图片的最大高度
     8     *@param string $pre 缩放后图片的前缀名
     9     *@return $string 返回后的图片名称() 如a.jpg->s.jpg
    10     *
    11 **/
    12      function imageUpdatesize($picname,$maxx=100,$maxy=100,$pre="s_"){
    13         $info=getimageSize($picname);//获取图片的基本信息 
    14         $w=$info[0];//获取宽度
    15         $h=$info[1];//获取高度
    16         //获取图片的类型并为此创建对应图片资源
    17         switch($info[2]){
    18             case 1://gif
    19                   $im=imagecreatefromgif($picname);    
    20                   break;                  
    21             case 2://jpg
    22                   $im=imagecreatefromjpeg($picname);
    23                   break;
    24             case 3://png
    25                  $im=imagecreatefrompng($picname);  
    26                   break;
    27             default:
    28                  die("图像类型错误");
    29         }
    30         //计算缩放比例
    31         if(($maxx/$w)>($maxy/$h)){
    32             $b=$maxy/$h;
    33         }else{
    34             $b=$maxx/$w;    
    35         }
    36         //计算出缩放后的尺寸
    37         $nw=floor($w*$b);
    38         $nh=floor($h*$b);
    39         //创建一个新的图像源(目标图像)
    40         $nim=imagecreatetruecolor($nw,$nh);
    41         //执行等比缩放
    42         imagecopyresampled($nim,$im,0,0,0,0,$nw,$nh,$w,$h);
    43         //输出图像(根据源图像的类型,输出为对应的类型)
    44         $picinfo=pathinfo($picname);//解析源图像的名字和路径信息
    45         $newpicname=$picinfo["dirname"]."/".$pre.$picinfo["basename"];
    46         switch($info[2]){
    47             case 1:
    48                 imagegif($nim,$newpicname);
    49                 break;
    50             case 2:
    51                 imagejpeg($nim,$newpicname);
    52                 break;
    53             case 3:
    54                 imagepng($nim,$newpicname);
    55                 break;                
    56             
    57         }
    58         //释放图片资源
    59         imagedestroy($im);
    60         imagedestroy($nim);
    61         //返回结果
    62         return $newpicname;
    63      }
    64     // 测试成功
    65      echo    imageUpdatesize("images/qie.jpg",150,150,ss_); // 返回的结果为 images/ss_qie.jpg
    66 ?>
  • 相关阅读:
    STM32中断优先级理解
    STM32按键控制程序
    STM32的LED驱动程序
    嵌入式程序员应知道的0x10个C语言Tips[转]
    【Unity】使用RenderTexture为物体生成快照
    对装饰模式(Decorator)的解读
    设计模式之初:理解面向对象设计
    windows RT系统下解决网络丢包问题
    IOS推出测试平台
    小米路由试用心得3——关于数据备份及客户端软件
  • 原文地址:https://www.cnblogs.com/kangshuai/p/4883919.html
Copyright © 2020-2023  润新知