$targ_w = $targ_h = 150; //保存的图片的大小
$jpeg_quality = 90;
$src = '/image/abc.jpg';
$img_r = imagecreatefromjpeg($src);
$dst_r = ImageCreateTrueColor( $targ_w, $targ_h );
imagecopyresampled($dst_r,$img_r,0,0,$_POST['x'],$_POST['y'],
$targ_w,$targ_h,$_POST['w'],$_POST['h']);
header('Content-type: image/jpeg');
imagejpeg($dst_r,null,$jpeg_quality);
ImageDestroy($dst_r);现在图片可以正常显示了
1:但是如何自动保存在服务器abc123.jpg
2:要想再保存个50*50的缩略图怎么做abc123456.jpg

解决方案 »

  1.   

    不输出,保存为文件,只需修改 imagejpeg()的第二个参数为文件名,那么自然也不需要 Header()声明输出流。
    保存缩略图,参见 imagecopyresampled() 函数
      

  2.   

    1,
    bool imagejpeg ( resource $image [, string $filename [, int $quality ]] )
    第二个参数指定文件。2,
    bool imagecopyresized ( resource $dst_image , resource $src_image , int $dst_x , int $dst_y , int $src_x , int $src_y , int $dst_w , int $dst_h , int $src_w , int $src_h )
      

  3.   

    $myName1 = "123455.jpg";
    imagejpeg($dst_r,$myName1,$jpeg_quality);

    imagecopyresized($dst_r,$img_r,0,0,$_POST['x'],$_POST['y'],
    $targ_w,$targ_h,$_POST['w'],$_POST['h']);
    $myName1 = "1234.jpg";
    imagejpeg($dst_r,$myName2,$jpeg_quality);
    ImageDestroy($dst_r);
    正确输出了123455.jpg, 1234.jpg未输出为何
    无错误