function make_small_copy($src)
{
$dir = substr($src,0,strrpos($src,'/') + 1);
$small_img = 'small_' . substr($src,strrpos($src,'/') + 1);
$data = getimagesize($src);
switch($data[2])
{
case 1:
$im = @imagecreatefromgif($src);
break;
case 2:
$im = @imagecreatefromjpeg($src);
break;
case 3:
$im = @imagecreatefrompng($src);
break;
}
$dstw = 150;
$dsth = 80;
$ni = imagecreatetruecolor($dstw,$dsth);
imagecopyresized($ni,$im,0,0,0,0,$dstw,$dsth,$data[0],$data[1]);
imagegif($ni,$dir . $small_img);
imagedestroy($ni);
}/// 参数是原始图片的路径~

解决方案 »

  1.   

    function ResizeImage($im,$maxwidth,$maxheight,$name)
    {
    $width = imagesx($im);
    $height = imagesy($im);
    if(($maxwidth && $width > $maxwidth) || ($maxheight && $height > $maxheight))
    {
    if($maxwidth && $width > $maxwidth)
    {
    $widthratio = $maxwidth/$width;
    $RESIZEWIDTH=true;
    }
    if($maxheight && $height > $maxheight)
    {
    $heightratio = $maxheight/$height;
    $RESIZEHEIGHT=true;
    }
    if($RESIZEWIDTH && $RESIZEHEIGHT)
    {
    if($widthratio < $heightratio)
    {
    $ratio = $widthratio;
    }
    else
    {
    $ratio = $heightratio;
    }
    }
    elseif($RESIZEWIDTH)
    {
    $ratio = $widthratio;
    }
    elseif($RESIZEHEIGHT)
    {
    $ratio = $heightratio;
    }
    $newwidth = $width * $ratio;
    $newheight = $height * $ratio;
    if(function_exists("imagecopyresampled"))
    {
    $newim = imagecreatetruecolor($newwidth, $newheight);
    imagecopyresampled($newim, $im, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);
    //echo "test1";
    }
    else
    {
    $newim = imagecreate($newwidth, $newheight);
    imagecopyresized($newim, $im, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);
    //echo "test2";
    }
    Imagepng ($newim,$name);
    ImageDestroy ($newim);
    }
    else
    {
    Imagepng ($im,$name);
    }
    }
      

  2.   

    <? $FILENAME="image_name"; // 生成图片的宽度 
    $RESIZEWIDTH=83; // 生成图片的高度 
    $RESIZEHEIGHT=100; function ResizeImage($im,$maxwidth,$maxheight,$name){ $width = imagesx($im); 
    $height = imagesy($im); 
    if(($maxwidth && $width > $maxwidth) || ($maxheight && $height > $maxheight)){ 
    if($maxwidth && $width > $maxwidth){ 
    $widthratio = $maxwidth/$width; 
    $RESIZEWIDTH=true; 

    if($maxheight && $height > $maxheight){ 
    $heightratio = $maxheight/$height; 
    $RESIZEHEIGHT=true; 

    if($RESIZEWIDTH && $RESIZEHEIGHT){ 
    if($widthratio < $heightratio){ 
    $ratio = $widthratio; 
    }else{ 
    $ratio = $heightratio; 

    }elseif($RESIZEWIDTH){ 
    $ratio = $widthratio; 
    }elseif($RESIZEHEIGHT){ 
    $ratio = $heightratio; 

    //$newwidth = $width * $ratio; 
    //$newheight = $height * $ratio; 
    $newwidth=83;
    $newheight=100;
    if(function_exists("imagecopyresampled")){ 
    $newim = imagecreatetruecolor($newwidth, $newheight); 
    imagecopyresampled($newim, $im, 0, 0, 0, 0, $newwidth, $newheight, $width, $height); 
    }else{ 
    $newim = imagecreate($newwidth, $newheight); 
    imagecopyresized($newim, $im, 0, 0, 0, 0, $newwidth, $newheight, $width, $height); 

    ImageJpeg ($newim,$name . ".jpg"); 
    ImageDestroy ($newim); 
    }else{ 
    ImageJpeg ($im,$name . ".jpg"); 

    } if($_FILES['image']['size']){ 
    if($_FILES['image']['type'] == "image/pjpeg"){ 
    $im = imagecreatefromjpeg($_FILES['image']['tmp_name']); 
    }elseif($_FILES['image']['type'] == "image/x-png"){ 
    $im = imagecreatefrompng($_FILES['image']['tmp_name']); 
    }elseif($_FILES['image']['type'] == "image/gif"){ 
    $im = imagecreatefromgif($_FILES['image']['tmp_name']); 

    if($im){ 
    if(file_exists("$FILENAME.jpg")){ 
    unlink("$FILENAME.jpg"); 

    ResizeImage($im,$RESIZEWIDTH,$RESIZEHEIGHT,$FILENAME); 
    ImageDestroy ($im); 

    } ?> <img src="<? echo($FILENAME.".jpg?reload=".rand(0,999999)); ?>"><br><br> <form enctype="multipart/form-data" method="post"> 
    <br> 
    <input type="file" name="image" size="50" value="浏览"><p> 
    <input type="submit" value="上传图片"> 
    </form> </body> 
    </html> 这个生成的只有2k多