现在有图片$pic地址.限制宽度按比例缩小.保存新图片.
输出$newpic地址
可设定新图片宽度.缩小不失真.
请大家帮忙.图片格式为jpg,png,

解决方案 »

  1.   

    GD2+用imagecopyresampled,否则用imagecopyresized
    手册有例子。。不失真不可能
      

  2.   

    以下是我使用的图片缩小函数,是原图片缩小的,你可以改下变成生成新图片//生成指定大小图片
    function creat_new_img($img_folder,$w = 60,$h = 60)
    {
    //获得图片属性,宽度高度类型
    $data   = getimagesize($img_folder);
    //生成图像句柄
    $im = _creat_img($data[2],$img_folder);
    if($im == "")return false;
    //获取图像宽度和高度
    $img_w = $data[0];
    $img_h = $data[1];
    //建立新的缩略图片
    $new_img = _creat_im($im,$w,$h,$img_w,$img_h);
    switch ($data[2])
    {
    case 1:
    imagegif($new_img,$img_folder,90);
    break;
    case 2:
    imagejpeg($new_img,$img_folder,90);
    break;
    case 3:
    imagepng($new_img,$img_folder,9);
    break;
    default:
    imagejpeg($new_img,$img_folder,90);
    }
    imagedestroy($im);
    }
    //生成对应图片类型的新图片
    function _creat_img($type,$img)
    { //生成对应图片类型的新图片
    switch($type)
    { //取得水印图片的格式
    case 1: //建立相对应格式的图片
    $im = imagecreatefromgif($img);
    break;
    case 2:
    $im = imagecreatefromjpeg($img);
    break;
    case 3:
    $im = imagecreatefrompng($img);
    break;
    default:
    return "";
    break;
    }
    return $im;
    }
    //将源图按新目标尺寸生成新图返回
    function _creat_im($src_im,$dstW,$dstH,$srcW,$srcH)
    {
    $dst_im=imagecreatetruecolor($dstW,$dstH);
    imagealphablending($dst_im,false);//为了生成透明背景,取消默认的混色模式
    imagesavealpha($dst_im,true);//为了生成透明背景,设定保存完整的 alpha 通道信息
    imagecopyresized($dst_im,$src_im,0,0,0,0,$dstW,$dstH,$srcW,$srcH);
    return $dst_im;
    }
      

  3.   

    楼上老大 没有php基础 基本属于不懂 再麻烦您一下 给我直接可以用的 不需要水印.
      

  4.   

    这个没有水印,那个注释是我把加水印的函数修改后忘记删除了注释
    再给你调用方法
    copy($oldimage,$newimage);//将图片复制成一个新的图片,这个新图片就是你缩小后的图片
    creat_new_img($newimage,60,60);//缩小图片
      

  5.   

    用开源图像库wideimage就好啦,对图片处理功能丰富,使用简单,也带有demo。
      

  6.   

    谢谢 jzh2004 有点感觉了 我具体用上试一下再回复
      

  7.   

    PHP生成缩略图的原理是使用GD库和imagecopyresized函数将一幅图像中的一块正方形区域拷贝到另一个图像中,PHP生成缩略图的原理参见:http://www.beijibear.com/index.php?aid=198
      

  8.   

    copy一个小图的我认为不好
    如果你E文还行的话搜索php class resize image on the fly