上传图片后使用imagecopyresampled函数生成缩略图,再用imagejpeg函数将缩略图写入磁盘。

解决方案 »

  1.   

    网上找了个程序,可以上传了,但图片颜色十分难看,是何原因???
    <?php
    // 本函数从源文件取出图象,设定成指定大小,并输出到目的文件
    // 源文件格式:gif,jpg,,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);
      $ni=ImageCreate($dstW,$dstH);
      ImageCopyResized($ni,$im,0,0,0,0,$dstW,$dstH,$srcW,$srcH);
      ImageJpeg($ni,$dstFile);
      // 如果需要输出到浏览器,那么将上一句改为ImageJpeg($ni);
      // 如果需要其它格式的图片,改动最后一句就可以了
    }
    ?>
      

  2.   

    $ni=ImageCreate($dstW,$dstH);
    对于gd1这样是可以的
    但对于gd2则必须用真彩模式,$ni=ImageCreateColorTrue($dstW,$dstH);
      

  3.   

    用 ImageCreateColorTrue 提示
    “Call to undefined function: imagecreatecolortrue() ”
    什么原因???
      

  4.   

    imagecreatetruecolor
    注意改成首字大写。
      

  5.   

    应为你写错了,是imagecreatetruecolor
      

  6.   

    是的,你写错了.应该是imageCreateTrueColor()
    然后用 imagejpeg() 将缩略图保存到d:/www/syt目录.
      

  7.   

    不好意思,是我写错了—— imagecreatetruecolor
      

  8.   

    不好意思,是我写错了—— imagecreatetruecolor---------------------------------PHP这一点就不太好,函数名的定义没有统一的标准,有些函数用_来分隔,有的则没有。
    所以用php的话,手册必不可少阿