PHP裁剪图像 - 错误的区域

时间:2013-07-08 06:47:14

标签: image laravel laravel-4 crop

在客户端我有一个jQuery脚本,我用它来选择图片上的方形区域。 我得到了x1,y1和width,height参数。它们被正确发送到服务器。 我想裁剪图像到这个选择,然后转换为PNG(虽然我尝试了imagejpg,imagepng函数)

代码是(我使用laravel 4):

    $file     = Input::file('picture');
    $filename = md5(microtime()).'.png';

    $image    = imagecreatefromstring(file_get_contents($file->getRealPath()));
    $crop     = imagecreatetruecolor(Input::get('width'), Input::get('height'));

    imagecopy($crop, $image, 0, 0, (int)Input::get('x1'), (int)Input::get('y1'), Input::get('width'), Input::get('height'));
    imagepng($crop, public_path().'/uploads/pictures/'.$filename);

高度>时效果很好原始图像的宽度。当我尝试裁剪宽图像(宽度>高度)时,我得到了错误的区域,似乎x1,y1是错误的(尽管它们不是)。我有正确的宽度/高度,但错误的部分。

上面的代码出了什么问题?

1 个答案:

答案 0 :(得分:1)

解决。问题是客户端没有考虑原始图像大小,它是用CSS缩放的