DB@中国
http://www.dbchina.net
收藏本页
联系我们
 
自动生成图片缩略图 ~ admin

 <?php  
          //自动生成图片缩略图  
          //   本函数从源文件取出图象,设定成指定大小,并输出到目的文件  
          //   源文件格式:gif,jpg,jpe,jpeg,png  
          //   目的文件格式:jpg  
          //   参数说明:  
          //   $srcFile   源文件  
          //   $dstFile   目标文件  
          //   $dstW   目标图象宽度  
          //   $dstH   目标图象高度  
          function   makethumb($srcFile,   $dstFile,   $dstW,   $dstH)   {  
                  $data   =   GetImageSize($srcFile,   &$info);  
                  switch   ($data[2])   {  
                          case   1:   $im   =   @ImageCreateFromGIF($srcFile);  
                          break;  
                          case   2:   $im   =   @imagecreatefromjpeg($srcFile);  
                          break;  
                          case   3:   $im   =   @ImageCreateFromPNG($srcFile);  
                          break;  
                  }  
                  $srcW   =   ImageSX($im);  
                  $srcH   =   ImageSY($im);  
                  $dstX   =   0;  
                  $dstY   =   0;  
                  if   ($srcW   *   $dstH   >   $srcH   *   $dstW)   {  
                          $fdstH   =   round($srcH   *   $dstW/$srcW);  
                          $dstY   =   floor(($dstH-$fdstH)/2);  
                          $fdstW   =   $dstW;  
                  }   else   {  
                          $fdstW   =   round($srcW   *   $dstH/$srcH);  
                          $dstX   =   floor(($dstW-$fdstW)/2);  
                          $fdstH   =   $dstH;  
                  }  
                  $ni   =   ImageCreate($dstW,   $dstH);  
                  $dstX   =   ($dstX   <   0)?0:   $dstX;  
                  $dstY   =   ($dstX   <   0)?0:   $dstY;  
                  $dstX   =   ($dstX   >   ($dstW/2))?floor($dstW/2):   $dstX;  
                  $dstY   =   ($dstY   >   ($dstH/2))?floor($dstH/s):   $dstY;  
                  $black   =   ImageColorAllocate($ni,   0,   0,   0);//填充的背景色你可以重新指定,我用的是黑色  
                  imagefilledrectangle($ni,   0,   0,   $dstW,   $dstH,   $black);  
                  ImageCopyResized($ni,   $im,   $dstX,   $dstY,   0,   0,   $fdstW,   $fdstH,   $srcW,   $srcH);  
                  ImageJpeg($ni,   $dstFile);//如果你要把图片直接输出到浏览器,  
                  //那么把第二个参数去掉,并用header()函数指定mine类型先  
                  imagedestroy($im);  
                  imagedestroy($ni);  
          }  
  ?>

Copyright ©2006-2009 DbChina.Net | 鲁ICP备05031207号