php的GD庫能否按百分比壓縮圖片?

來源:互聯網
上載者:User
用php的GD庫壓縮圖片時,可以填入具體的寬和高進行壓縮。那麼,能否按百分比壓縮呢,比如壓縮為原圖的90%,80%....等?

回複內容:

用php的GD庫壓縮圖片時,可以填入具體的寬和高進行壓縮。那麼,能否按百分比壓縮呢,比如壓縮為原圖的90%,80%....等?

可以啊,中午剛給朋友搞了個壓縮的,

     $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, $thumbWidth, $thumbHeight, $srcWidth, $srcHeight);        imagepng($dstThumbPic, $dstFile);        imagedestroy($dstThumbPic);        imagedestroy($srcPic);        return true;       } else {        return false;       }      } else {       return false;      }     }    }    ?>

imagejpeg() 有一個參數可以設定壓縮比例
http://php.net/manual/zh/function.imagejpeg.php

  • 相關文章

    聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.