当前位置:Linux教程 - Php - 关于生成缩略图的问题各位大侠请进来

关于生成缩略图的问题各位大侠请进来

关于生成缩略图的问题,各位大侠请进来    
从网上找来了从jpg文件生成缩略图的程序,略加改动变成下面的程序,现在这个程序可以将一个jpg文件的缩略图直接输出,但我想在网页的某个位置插入一个或者多个缩略图以方便我编辑图片的时候有所依据,但下面的这个函数在输出的时候出现很多乱码,如何解决呢?
<?
function makethumb($srcFile,$dstW,$dstH, $type='png') {
$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;
$white = ImageColorAllocate($ni, 255,255,255);//ì?3?μ?±3?°é?
imagefilledrectangle($ni,0,0,$dstW,$dstH,$white);
ImageCopyResized($ni,$im,$dstX,$dstY,0,0,$fdstW,$fdstH,$srcW,$srcH);
ImageJpeg($ni);
//imagedestroy($im);
//imagedestroy($ni);
}


makethumb("1.jpg",259,193,"jpg");


__________________

我写了个树型论坛,闲着没事的就去转转叭……http
://bbs.ocer.net


  
   


向版主反映这个帖子 | IP: 已记录

05
-20-03 20:17                     


  
rfeng
中级会员


注册日期
: Aug 2002
来自
: 北京
发帖数
: 171
    
顶一下,希望有人能够解答


__________________

我写了个树型论坛,闲着没事的就去转转叭……http
://bbs.ocer.net


  
   


向版主反映这个帖子 | IP: 已记录

05
-21-03 13:16                     


  
xianle
老会员


注册日期
: Apr 2002
来自
:
发帖数: 344
    
PHP代码
:--------------------------------------------------------------------------------
$tx=GetImageSize($sample);
  if(
$tx[0]<=$tx[1] and $tx[1]>=120){
     
$height=120;
     
$width=intval($height*$tx[0]/$tx[1]);
  }
  if(
$tx[0]>=$tx[1] and $tx[0]>=100){
     
$width=100;
     
$height=intval($width*$tx[1]/$tx[0]);
  }
  if(
$tx[0]<100 and $tx[1]<120){
     
$width=$tx[0];
     
$height=$tx[1];
  }

  
makethumb2($sample,$target,$width,$height);

  
// $srcFile: 源文件
  // $dstFile: 目标文件
  // $dstW: 目标图片宽度
  // $dstH: 目标文件高度
  
function makethumb2($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);
           
$ni=ImageCreate($dstW,$dstH);
           
ImageCopyResized($ni,$im,0,0,0,0,$dstW,$dstH,$srcW,$srcH);
           
ImageJpeg($ni,$dstFile);
           
// 如果需要输出到浏览器,那么将上一句改为ImageJpeg($ni);
           // 如果需要其它格式的图片,改动最后一句就可以了
  
}

--------------------------------------------------------------------------------



__________________

*******************
*******************
*******************
解密吧!