试试用这个函数:ImageCopyResized
复制新图并调整大小。语法: int imagecopyresized(int dst_im, int src_im, int dstX, int dstY, int srcX, int srcY, int dstW, int dstH, int srcW, int srcH);传回值: 整数函式种类: 图形处理
 
内容说明 本函式可复制新图,并重新调整图片的大小尺寸。参数都是目的在前,来源在后。参数 dst_im 及 src_im 为图片的 handle。参数 dstX、dstY、srcX、srcY 分别为目的及来源的坐标。参数 dstW、dstH、srcW、srcH 分别为来源及目的的宽及高,若欲调整新图的尺寸就在这儿设定。

解决方案 »

  1.   

    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); 
    } // $srcFile 源文件 
    // $dstFile 目标文件 
    // $dstW 目标图象宽度 
    // $dstH 目标图象高度 
      

  2.   

    ImageCreateFromGIF这个函数不好用了吧
      

  3.   

    to peakcn(Peak) : 
    好久不见了:)
    在新的GD中,好像已经不支持GIF文件格式了,说是版权的问题.
      

  4.   

    LeeMaRS(小菜虎_水壶的仇人) 是呀,好久不见了你倒是满活跃的呀
      

  5.   

    to peakcn(Peak) :
    4242.:) 我经常来的. diychen的你试试吧.
    不过新版本的GD库好像已经不支持GIF了呢..
      

  6.   

    是呀,新版本的是不支持GIF的,所以现在想请教高手问问呀
      

  7.   

    不要使用GIF使用PNG,也很好用。。
      

  8.   

    to: LeeMaRS(小菜虎_水壶的仇人) 我用的是虚拟主机呀自己没办法加载旧的GD库呀
      

  9.   

    to:eric_yan() 改是PNG是吧?!哪请教如果例如类似ImageCreateFromGIF函数来读取源文件呢?
      

  10.   

    在diychen的例子中就有了
    case 3: 
    $im = @ImageCreateFromPNG($srcFile);
      

  11.   

    ImageCreateFromPNG()这个函数能从GIF图片中创建吗?我现在就试试先谢谢了
      

  12.   

    自己用改一下php源代码就可以支持gif了
      

  13.   

    如果是windows,下載一個php_gd_gif.dll:
    地址:http://php.weblogs.com/php_gd/
    加載以後使用
    ImageCreateFromGIF如果是linux見:
    http://www.gouhuo.com/index.php?recid=451&cate=php
      

  14.   

    今天發現一人竟然可以連續髮四帖,見上,hehe:)
      

  15.   

    hehe 中间可能有人发帖没成功.