關於php圖片等比例縮放函數的.誰能幫我看看我這個函數怎麼用啊?

來源:互聯網
上載者:User
function resize($srcImage,$toFile,$maxWidth = 100,$maxHeight = 100,$imgQuality=100) {        list($width, $height, $type, $attr) = getimagesize($srcImage);     if($width < $maxWidth  || $height < $maxHeight) return ;     switch ($type) {     case 1: $img = imagecreatefromgif($srcImage); break;     case 2: $img = imagecreatefromjpeg($srcImage); break;     case 3: $img = imagecreatefrompng($srcImage); break;     }     $scale = min($maxWidth/$width, $maxHeight/$height); //求出綻放比例          if($scale < 1) {     $newWidth = floor($scale*$width);     $newHeight = floor($scale*$height);     $newImg = imagecreatetruecolor($newWidth, $newHeight);     imagecopyresampled($newImg, $img, 0, 0, 0, 0, $newWidth, $newHeight, $width, $height);     $newName = "";     $toFile = preg_replace("/(.gif|.jpg|.jpeg|.png)/i","",$toFile);      switch($type) {         case 1: if(imagegif($newImg, "$toFile$newName.gif", $imgQuality))         return "$newName.gif"; break;         case 2: if(imagejpeg($newImg, "$toFile$newName.jpg", $imgQuality))         return "$newName.jpg"; break;         case 3: if(imagepng($newImg, "$toFile$newName.png", $imgQuality))         return "$newName.png"; break;         default: if(imagejpeg($newImg, "$toFile$newName.jpg", $imgQuality))        return "$newName.jpg"; break;     }     imagedestroy($newImg);     }     imagedestroy($img);     return false; }其中 $toFile = preg_replace("/(.gif|.jpg|.jpeg|.png)/i","",$toFile);具體目的是什麼?

回複內容:

function resize($srcImage,$toFile,$maxWidth = 100,$maxHeight = 100,$imgQuality=100) {        list($width, $height, $type, $attr) = getimagesize($srcImage);     if($width < $maxWidth  || $height < $maxHeight) return ;     switch ($type) {     case 1: $img = imagecreatefromgif($srcImage); break;     case 2: $img = imagecreatefromjpeg($srcImage); break;     case 3: $img = imagecreatefrompng($srcImage); break;     }     $scale = min($maxWidth/$width, $maxHeight/$height); //求出綻放比例          if($scale < 1) {     $newWidth = floor($scale*$width);     $newHeight = floor($scale*$height);     $newImg = imagecreatetruecolor($newWidth, $newHeight);     imagecopyresampled($newImg, $img, 0, 0, 0, 0, $newWidth, $newHeight, $width, $height);     $newName = "";     $toFile = preg_replace("/(.gif|.jpg|.jpeg|.png)/i","",$toFile);      switch($type) {         case 1: if(imagegif($newImg, "$toFile$newName.gif", $imgQuality))         return "$newName.gif"; break;         case 2: if(imagejpeg($newImg, "$toFile$newName.jpg", $imgQuality))         return "$newName.jpg"; break;         case 3: if(imagepng($newImg, "$toFile$newName.png", $imgQuality))         return "$newName.png"; break;         default: if(imagejpeg($newImg, "$toFile$newName.jpg", $imgQuality))        return "$newName.jpg"; break;     }     imagedestroy($newImg);     }     imagedestroy($img);     return false; }其中 $toFile = preg_replace("/(.gif|.jpg|.jpeg|.png)/i","",$toFile);具體目的是什麼?

因為tofile($srcImage,$toFile)第二個參數$toFile自己指定的話存在格式問題,比如srcImage是jpg,但是如果你填寫的toFile是png,那格式就對不上了,因此如果你制定了toFile的檔案尾碼,那就直接幹掉,然後在直接將原圖片的格式追加在你指定的toFile後面。

--

簡單來說:
tofile('a.jpg','b.png');
最終產生的是b.jpg而不是b.png

  • 相關文章

    聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.