PHP學習筆記:等比例縮放圖片


直接上代碼,imgzip($src,$newwid,$newhei)這個函數帶進去的分別是原圖片、縮放要求的寬度、縮放的長度。代碼都備注了,不懂可以留言哈哈

<?php 

//壓縮圖片  縮略圖

$src= "xiezheng.jpg";
$newwid=640;
$newhei= 480;
function imgzip($src,$newwid,$newhei){
    $imgInfo = getimagesize($src);

    $imgType = image_type_to_extension($imgInfo[2], false);

    $fun = "imagecreatefrom{$imgType}";

//聲明圖片   打開圖片 在內存中
    $image = $fun($src);
//方便配置長度寬度、高度,設置框為變量wid,高度為hei
    $wid=$imgInfo[0];
    $hei=$imgInfo[1];
//判斷長度和寬度,以方便等比縮放,規格按照500, 320
    if($wid>$hei){
        $wid=$newwid;
        $hei=$newwid/($wid/$hei);
    }else {
        $wid = $newhei * ($wid / $hei);
        $hei = $newhei;
    }

//在內存中建立一張圖片
    $images2 = imagecreatetruecolor($newwid, $newhei); //建立一個500*320的圖片

//將原圖復制到新建圖片中
//imagecopyresampled($dst_image, $src_image, $dst_x, $dst_y, $src_x, $src_y, $dst_w, $dst_h, $src_w, $src_h)

    imagecopyresampled($images2, $image, 0, 0, 0, 0, $wid,$hei, $imgInfo[0],$imgInfo[1]);

//銷毀原始圖片
    imagedestroy($image);


//直接輸出圖片文件

    header("Content-type: ".$imgInfo['mime']);
    imagejpeg($images2);

//保存圖片 到新文件
    imagejpeg($images2, 'new.jpg', 100); //10代碼輸出圖片的質量 0-100 100質量最高

//銷毀
    imagedestroy($images2);
}
imgzip($src,$newwid,$newhei);


?>

 效果

壓縮前

壓縮后

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM