• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

php的GD库能否按百分比压缩图片?

php 搞代码 3年前 (2022-01-25) 29次浏览 已收录 0个评论
文章目录[隐藏]

用php的GD库压缩图片时,可以填入具体的宽和高进行压缩。那么,能否按百分比压缩呢,比如压缩为原图的90%,80%….等?

回复内容:

用php的GD库压缩图片时,可以填入具体的宽和高进行压缩。那么,能否按百分比压缩呢,比如压缩为原图的90%,80%….等?

可以啊,中午刚给朋友搞了个压缩的,

<code>    <?php    /*+-----------------------------------------------------------------------+*/    /*+ jpg,gif,png图片等比例压缩                                             +*/    /*+-----------------------------------------------------------------------+*/    class RarImag{     /**      * 得到等比例缩放的长宽      */     function getNewSize($maxWidth, $maxHeight, $srcWidth, $srcHeight) {      if($srcWidth > $maxWidth) {       $maxWidth = $maxWidth;       if($srcHeight > $maxHeight) {        $maxHeight = ($srcHeight/$srcHeight) * $maxWidth;       } else {         $maxHeight = $srcHeight;       }       return array('width' => $maxWidth,'height' => $maxHeight);      }          if($srcHeight > $maxHeight) {       $maxHeight = $maxHeight;       if($srcWidth > $maxWidth) {         $maxWidth = ($srcWidth/$srcHeight) * $maxHeight;       } else {         $maxWidth = $srcWidth;       }       return array('width' => $srcWidth,'height' => $maxHeight);      }          return array('width' => $srcWidth,'height' => $srcHeight);    }     /**      * 等比例生成缩略图      *      * @param  String  $srcFile  原始文件路径      * @param  String  $dstFile  目标文件路径      * @param  Integer  $maxWidth  生成的目标文件的最大宽度      * @param  Integer  $maxHeight  生成的目标文件的最大高度      * @return  Boolean  生成成功则返回true,否则返回false      */     function makeThumb($srcFile, $dstFile, $maxWidth, $maxHeight) {      if ($size = getimagesize($srcFile)) {       $srcWidth = $size[0];       $srcHeight = $size[1];       $mime = $size['mime'];       switch ($mime) {        case 'image/jpeg';         $isJpeg = true;         break;        case 'image/gif';         $isGif = true;         break;        case 'image/png';         $isPng = true;         break;        default:         return false;         break;       }       //header("Content-type:$mime");       $arr = $this->getNewSize($maxWidth, $maxHeight, $srcWidth, $srcHeight);       $thumbWidth = $arr['width'];       $thumbHeight = $arr['height'];       if (isset($isJpeg) && $isJpeg) {        $dstThumbPic = imagecreatetruecolor($thumbWidth, $thumbHeight);        $srcPic = imagecreatefromjpeg($srcFile);        imagecopyresampled($dstThumbPic, $srcPic, 0, 0, 0, 0, $thumbWidth, $thumbHeight, $srcWidth, $srcHeight);        imagejpeg($dstThumbPic, $dstFile, 100);        imagedestroy($dstThumbPic);        imagedestroy($srcPic);        return true;       } elseif (isset($isGif) && $isGif) {        $dstThumbPic = imagecreatetruecolor($thumbWidth, $thumbHeight);        //创建透明画布        imagealphablending($dstThumbPic, true);        imagesavealpha($dstThumbPic, true);        $trans_colour = imagecolorallocatealpha($dstThumbPic, 0, 0, 0, 127);        imagefill($dstThumbPic, 0, 0, $trans_colour);        $srcPic = imagecreatefromgif($srcFile);        imagecopyresampled($dstThumbPic, $srcPic, 0, 0, 0, 0, $thumbWidth, $thumbHeight, $srcWidth, $srcHeight);        imagegif($dstThumbPic, $dstFile);        imagedestroy($dstThumbPic);        imagedestroy($srcPic);        return true;       } elseif (isset($isPng) && $isPng) {        $dstThumbPic = imagecreatetruecolor($thumbWidth, $thumbHeight);        //创建透明画布        imagealphablending($dstThumbPic, true);        imagesavealpha($dstThumbPic, true);        $trans_colour = imagecolorallocatealpha($dstThumbPic, 0, 0, 0, 127);        imagefill($dstThumbPic, 0, 0, $trans_colour);        $srcPic = imagecreatefrompng($srcFile);        imagecopyresampled($dstThumbPic, $srcPic, 0, 0, 0, 0, $thumbWi<mark>6来源gaodaimacom搞#^代%!码网</mark><strong>搞gaodaima代码</strong>dth, $thumbHeight, $srcWidth, $srcHeight);        imagepng($dstThumbPic, $dstFile);        imagedestroy($dstThumbPic);        imagedestroy($srcPic);        return true;       } else {        return false;       }      } else {       return false;      }     }    }    ?></code>

imagejpeg() 有一个参数可以设定压缩比例
http://php.net/manual/zh/function.imagejpeg.php


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:php的GD库能否按百分比压缩图片?
喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址