> php教程 > PHP源码 > PHP缩略图,满窗格等比例缩小

PHP缩略图,满窗格等比例缩小

PHP中文网
풀어 주다: 2016-05-25 17:14:37
원래의
925명이 탐색했습니다.

php代码

<?php
    function thumbs($FileName,$SaveTo,$SetW,$SetH){
        $IMGInfo= getimagesize($FileName);
        if(!$IMGInfo) return false;        
        if($IMGInfo[mime]== "image/pjpeg" || $IMGInfo[mime]=="image/jpeg"){ 
            $ThisPhoto= imagecreatefromjpeg($FileName); 
        }elseif($IMGInfo[mime]== "image/x-png" || $IMGInfo[mime]== "image/png"){ 
            $ThisPhoto= imagecreatefrompng($FileName);    
        }elseif($IMGInfo[mime]== "image/gif"){ 
            $ThisPhoto=imagecreatefromgif($FileName);  
        }  
        $width=$IMGInfo[0];
        $height=$IMGInfo[1];    
        $scalc = max($width/$SetW,$height/$SetH);
        $nw = intval($width/$scalc);
        $nh = intval($height/$scalc);
        echo "缩略大小:w$nw,h$nh <br />";
        if($SetW-$nw == 1){$nw = $SetW;}
        if($SetH-$nh == 1){$nh = $SetH;}
        echo "+修正1像素: w$nw,h$nh<br />";
        //补宽
        if($SetW-$nw > 0){
            $nh = $nh +(($nh/$nw) * ($SetW-$nw));
            echo "*需补宽".($SetW-$nw).",陪补高".(($nh/$nw) * ($SetW-$nw))."  <br />";   
            $nw = $SetW;
        }
        //补高
        if($SetH-$nh > 0){
            $nw = $nw + (($nw/$nh) * ($SetH-$nh));
            echo "*需补高".($SetH-$nh).",陪补宽". (($nw/$nh) * ($SetH-$nh)) ."<br />";
            $nh = $SetH;
        }
        
        $nw = intval($nw);
        $nh = intval($nh);
        echo "+修正大小:w$nw,h$nh<br />";
        $px = ($SetW - $nw)/2;
        $py = ($SetH - $nh)/2;
        echo "窗口大小:w$SetW,h$SetH <br />";
        echo "+偏移修正:x$px,y$py <br />";
        $NewPhoto=imagecreatetruecolor($SetW,$SetH); 
        imagecopyresized($NewPhoto,$ThisPhoto,$px,$py,0,0,$nw,$nh,$width,$height); 
        ImageJpeg ($NewPhoto,$SaveTo);
        return true;
    }
    thumbs(&#39;a.jpg&#39;,&#39;newa.jpg&#39;,150,70);
?>
로그인 후 복사
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 추천
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿