先取出并保存好该图片.再用下面的来生成小图.
<?php
$new_w=100;
$new_h=100;
header("Content-type: image/png");
$dst_img=ImageCreate($new_w,$new_h);
$src_img=ImageCreateFrompng("./imgtest.png");
ImageCopyResized($dst_img,$src_img,0,0,0,0,$new_w,$new_h,ImageSX($src_img),ImageSY($src_img));
Imagepng($dst_img);
?>
以上代码生成100*100的小图并显示.

解决方案 »

  1.   

    在上传时就生成一个小图!!见这里http://album.topdigi.com.cn
      

  2.   

    这个是我用过的上传图片时自动生成小图的函数
    // 本函数从源文件取出图象,设定成指定大小,并输出到目的文件
    // 源文件格式:gif,jpg,jpe,jpeg,png
    // 目的文件格式:jpg
    // 参数说明:
    // $srcFile 源文件
    // $dstFile 目标文件
    // $dstW 目标图象宽度
    // $dstH 目标图象高度
    function makethumb($srcFile,$dstFile,$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);//填充的背景色
        imagefilledrectangle($ni,0,0,$dstW,$dstH,$white);
        ImageCopyResized($ni,$im,$dstX,$dstY,0,0,$fdstW,$fdstH,$srcW,$srcH);
        if ($type=='gif') ImageGif($ni,$dstFile);
        else ImageJpeg($ni,$dstFile);
        imagedestroy($im);
        imagedestroy($ni);
    }