• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    PHP实现图片压缩

    本文实例为大家分享了PHP实现图片压缩的具体代码,供大家参考,具体内容如下

    /**
     * 生成图片
     * @param string $im 源图片路径
     * @param string $dest 目标图片路径
     * @param int $maxwidth 生成图片宽
     * @param int $maxheight 生成图片高
     */
    function resizeImage($im, $dest, $maxwidth, $maxheight) {
     $img = getimagesize($im);
     switch ($img[2]) {
     case 1:
      $im = @imagecreatefromgif($im);
      break;
     case 2:
      $im = @imagecreatefromjpeg($im);
      break;
     case 3:
      $im = @imagecreatefrompng($im);
      break;
     }
     
     $pic_width = imagesx($im);
     $pic_height = imagesy($im);
     $resizewidth_tag = false;
     $resizeheight_tag = false;
     if (($maxwidth  $pic_width > $maxwidth) || ($maxheight  $pic_height > $maxheight)) {
     if ($maxwidth  $pic_width > $maxwidth) {
      $widthratio = $maxwidth / $pic_width;
      $resizewidth_tag = true;
     }
     
     if ($maxheight  $pic_height > $maxheight) {
      $heightratio = $maxheight / $pic_height;
      $resizeheight_tag = true;
     }
     
     if ($resizewidth_tag  $resizeheight_tag) {
      if ($widthratio  $heightratio)
      $ratio = $widthratio;
      else
      $ratio = $heightratio;
     }
     
     
     if ($resizewidth_tag  !$resizeheight_tag)
      $ratio = $widthratio;
     if ($resizeheight_tag  !$resizewidth_tag)
      $ratio = $heightratio;
     $newwidth = $pic_width * $ratio;
     $newheight = $pic_height * $ratio;
     
     if (function_exists("imagecopyresampled")) {
      $newim = imagecreatetruecolor($newwidth, $newheight);
      imagecopyresampled($newim, $im, 0, 0, 0, 0, $newwidth, $newheight, $pic_width, $pic_height);
     } else {
      $newim = imagecreate($newwidth, $newheight);
      imagecopyresized($newim, $im, 0, 0, 0, 0, $newwidth, $newheight, $pic_width, $pic_height);
     }
     
     imagejpeg($newim, $dest);
     imagedestroy($newim);
     } else {
     imagejpeg($im, $dest);
     }
    }
     
    /**
     * 图片压缩处理
     * @param string $sFile 源图片路径
     * @param int $iWidth 自定义图片宽度
     * @param int $iHeight 自定义图片高度
     * @return string 压缩后的图片路径
     */
    function getThumb($sFile,$iWidth,$iHeight){
     //图片公共路径
     $public_path = '';
     //判断该图片是否存在
     if(!file_exists($public_path.$sFile)) return $sFile;
     //判断图片格式(图片文件后缀)
     $extend = explode("." , $sFile);
     $attach_fileext = strtolower($extend[count($extend) - 1]);
     if (!in_array($attach_fileext, array('jpg','png','jpeg'))){
     return '';
     }
     //压缩图片文件名称
     $sFileNameS = str_replace(".".$attach_fileext, "_".$iWidth.'_'.$iHeight.'.'.$attach_fileext, $sFile);
     //判断是否已压缩图片,若是则返回压缩图片路径
     if(file_exists($public_path.$sFileNameS)){
     return $sFileNameS;
     }
     
     //生成压缩图片,并存储到原图同路径下
     resizeImage($public_path.$sFile, $public_path.$sFileNameS, $iWidth, $iHeight);
     if(!file_exists($public_path.$sFileNameS)){
     return $sFile;
     }
     return $sFileNameS;
    }
    

    使用实例:

    //原图 img/img.jpg
    //生成压缩图 img/img_300_300.jpg
    getThumb('img/img.jpg',300,300);

    以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家,关注脚本之家公众号的更多精彩内容。

    您可能感兴趣的文章:
    • php高清晰度无损图片压缩功能的实现代码
    • PHP多个图片压缩成ZIP的方法
    • PHP实现图片压缩的两则实例
    • php实现图片压缩处理
    上一篇:PHP获取数据库表中的数据插入新的表再原删除数据方法
    下一篇:PHP按一定比例压缩图片的方法
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    PHP实现图片压缩 PHP,实现,图片,压缩,PHP,实现,