zoukankan      html  css  js  c++  java
  • PHP缩略图,满窗格等比例缩小

    1.等比例缩小
    2.必须是规定的缩略图大小
    3.原图可以裁剪但需要中心点在窗口

    <?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('a.jpg','newa.jpg',150,70);
    ?>
    
    <style>
        img{ border:1px solid #ccc;margin:2px;}
    </style>
    
    <img src="/a.jpg"  />
    <img src="/newa.jpg" />
    
    
  • 相关阅读:
    小学二年级四则运算软件需求规格说明书
    周活动总结
    构建之法阅读笔记01
    学习进度条01
    四则运算
    软件工程概论
    课后作业1
    继承与多态-课后作业
    python文件处理-将图像根据坐标画矩形标记
    python文件处理-将图像根据坐标切割成若干小图
  • 原文地址:https://www.cnblogs.com/webooxx/p/1938179.html
Copyright © 2011-2022 走看看