到http://qsy_627.blog.163.com 下载

解决方案 »

  1.   


            $dstWidth =200;
            $dstHeight = 200;
            $srcWidth = imagesx ( $srcFile ); //原文件大小
            $srcHeight = imagesy ( $srcFile );
            if($srcWidth>$dstWidth||$srcHeight>$dstHeight){
                if($srcWidth>$srcHeight){
                     $p=$dstWidth/$srcWidth;
                }else{
                     $p=$dstHeight/$srcHeight;
                }
                $dstWidth=$srcWidth*$p;
                $dstHeight= $srcHeight*$p;
            }else{
               $dstWidth=$srcWidth;
               $srcWidth=$srcHeight; 
            }大家看看我这个对不对?我这个图片是缩进在一个框子中.
      

  2.   

    /**
         * 从$arr的长和宽等比例缩小至$arrTo resize(array($array['width'],$array['height']), array(160,120))
         * @return unknown
         */
        function resize($arr, $arrTo )
        {
            $arr[0] = $arr[0]>10 ? $arr[0] : $arrTo[0];
            $arr[1] = $arr[1]>10 ? $arr[1] : $arrTo[1]; 
            $arrTo[0] = $arrTo[0]<=0 ? 160 : $arrTo[0];
            $arrTo[1] = $arrTo[1]<=0 ? 120 : $arrTo[1];
            $temp = $arr;
            //如果宽度超出
            if( $arr[0] > $arrTo[0]){
                $temp[0] = $arrTo[0];
                $temp[1] = (int)($temp[0]*$arr[1]/$arr[0]);
                if( $temp[1] > $arrTo[1]){
                    $temp[1] = $arrTo[1];
                    $temp[0] = (int)($arr[0]*$temp[1]/$arr[1]);
                }            
            }
            //如果高度超出
            if( $arr[1] > $arrTo[1] ){
                $temp[1] = $arrTo[1];
                $temp[0] = (int)($arr[0]*$temp[1]/$arr[1]);
                if( $temp[0] > $arrTo[0]){
                    $temp[0] = $arrTo[0];
                    $temp[1] = (int)($temp[0]*$arr[1]/$arr[0]);
                }
            }
            return $temp;
        }