php產生縮圖代碼

來源:互聯網
上載者:User


<?
/**
* 產生縮圖
* $srcName----為原圖片路徑
* $newWidth,$newHeight----分別縮圖的最大寬,高
* $newName----為縮圖檔案名稱(含路徑),預設為加入thumbnail
* @param string $srcName
* @param int $newWidth
* @param int $newHeight
* @param string $newName
* return viod
*/
function resizeImg($srcName,$newWidth,$newHeight,$newName="")
{
        if($newName=="")
        {
                $nameArr=explode('.',$srcName);
                $expName=array_pop($nameArr);
                $expName='thumbnail.'.$expName;
                array_push($nameArr,$expName);
                $newName = implode('.',$nameArr);
        }
        $info = "";
        $data = getimagesize($srcName,$info);
        switch ($data[2])
        {
                case 1:
                        if(!function_exists("imagecreatefromgif")){
                                echo "你的GD庫不能使用GIF格式的圖片,請使用Jpeg或PNG格式!返回";
                                exit();
                        }
                        $im = ImageCreateFromGIF($srcName);
                        break;
                case 2:
                        if(!function_exists("imagecreatefromjpeg")){
                                echo "你的GD庫不能使用jpeg格式的圖片,請使用其它格式的圖片!返回";
                                exit();
                        }
                        $im = ImageCreateFromJpeg($srcName);
                        break;
                case 3:
                        $im = ImageCreateFromPNG($srcName);
                        break;
        }
        $srcW=ImageSX($im);
        $srcH=ImageSY($im);
        $newWidthH=$newWidth/$newHeight;
        $srcWH=$srcW/$srcH;
        if($newWidthH<=$srcWH){
                $ftoW=$newWidth;
                $ftoH=$ftoW*($srcH/$srcW);
        }
        else{
                $ftoH=$newHeight;
                $ftoW=$ftoH*($srcW/$srcH);
        }
        if($srcW>$newWidth||$srcH>$newHeight)
        {
                if(function_exists("imagecreatetruecolor"))
                {
                        @$ni = ImageCreateTrueColor($ftoW,$ftoH);
                        if($ni) ImageCopyResampled($ni,$im,0,0,0,0,$ftoW,$ftoH,$srcW,$srcH);
                        else
                        {
                                $ni=ImageCreate($ftoW,$ftoH);
                                ImageCopyResized($ni,$im,0,0,0,0,$ftoW,$ftoH,$srcW,$srcH);
                        }
                }
                else
                {
                        $ni=ImageCreate($ftoW,$ftoH);
                        ImageCopyResized($ni,$im,0,0,0,0,$ftoW,$ftoH,$srcW,$srcH);
                }
                if(function_exists('imagejpeg')) ImageJpeg($ni,$newName);
                else ImagePNG($ni,$newName);
                ImageDestroy($ni);
        }
        ImageDestroy($im);
}

resizeImg('123.JPG',150,150);
?>

聯繫我們

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