imagecreatefromjpeg()缩放图像

时间:2012-03-15 12:43:19

标签: php ajax jquery

我正在构建一个图像缩放器,它使用jcrop jQuery插件和php和ajax来上传和裁剪/缩放图像。我应该保存并裁剪/缩放图像时出现随机错误,问题是随机的,因为我可以使用相同的图像10次,以相同的方式和相同的大小裁剪它,它可以工作10次中的9次但是时间它不起作用我得到这个错误:

  

警告:imagecreatefromjpeg()[function.imagecreatefromjpeg]:gd-jpeg,libjpeg:可恢复错误:JPEG文件的提前结束
  在 /home/users/A006193/fgpostbus.nl/www.fgpostbus.nl/uploader/scale.php 的第 9行

     

警告:imagecreatefromjpeg()[function.imagecreatefromjpeg]:'upload / cfd962453a1409fd59dfd5e6230e869eheaderFac12348.jpg'不是 /home/users/A006193/fgpostbus.nl/www.fgpostbus.nl/uploader/中的有效JPEG文件scale.php 9

行      

警告:imagecopyresampled():提供的参数不是 /home/users/A006193/fgpostbus.nl/www.fgpostbus.nl/uploader/scale.php 中有效的图像资源< b> 13

图像以md5保存,之后你必须裁剪它,如果它不是必须的大小,它在裁剪时必须有数据发送到scale.php scale.php包含用于执行最后操作(裁剪,缩放和保存)的php我使用ajax发布php应该使用的详细信息。它会像这样发送:

x=354&y=0&w=245&h=245&url=upload%2Fcfd962453a1409fd59dfd5e6230e869eheaderFac12348.jpg&setW=160&setH=160

最终我的scale.php看起来像这样:

<?php

 if ($_SERVER['REQUEST_METHOD'] == 'POST')
{
$src = $_POST['url'];
$targ_w = $_POST['setW'];
$targ_h = $_POST['setH'];
$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']);

imagejpeg($dst_r, $src, 90);
exit;
}

?>

问题在于我的头脑中没有任何关于给出错误的模板,即时通讯让它完全随机,所以如果有人会建议我可能做错了那么请告诉我。

3 个答案:

答案 0 :(得分:0)

此路径upload%2Fcfd962453a1409fd59dfd5e6230e869eheaderFac12348.jpg是否在服务器端?

因为如果没有,你需要上传实际的二进制文件;只传递URL中的文件名是行不通的。

您可能需要查看此处:POST method uploads

答案 1 :(得分:0)

不要假设图像和远程服务器按预期工作,您应该使用curl在本地下载图像,然后处理它,处理您可能遇到的任何错误。

答案 2 :(得分:0)

试试这个


ini_set('gd.jpeg_ignore_warning', 1);

前 的 imagecreatefromjpeg()