Image PHP裁剪图像-错误区域

Image PHP裁剪图像-错误区域,image,laravel,laravel-4,crop,Image,Laravel,Laravel 4,Crop,在客户端,我有一个jQuery脚本,我用它在图片上选择一个正方形区域。 我得到了x1,y1和宽度,高度参数。它们被正确地发送到服务器。 我想将图像裁剪为该选择,然后转换为PNG(尽管我尝试了imagejpg和imagepng两个函数) 代码是(我使用laravel 4): 当原始图像的高度>宽度时,它可以完美地工作。当我尝试裁剪宽图像(宽度>高度)时,我得到了错误的区域,似乎x1、y1是错误的(尽管它们不是)。我得到了正确的宽度/高度,但截面错误 上面的代码有什么问题?已解决。问题是客户端没有考

在客户端,我有一个jQuery脚本,我用它在图片上选择一个正方形区域。 我得到了x1,y1和宽度,高度参数。它们被正确地发送到服务器。 我想将图像裁剪为该选择,然后转换为PNG(尽管我尝试了imagejpg和imagepng两个函数)

代码是(我使用laravel 4):

当原始图像的高度>宽度时,它可以完美地工作。当我尝试裁剪宽图像(宽度>高度)时,我得到了错误的区域,似乎x1、y1是错误的(尽管它们不是)。我得到了正确的宽度/高度,但截面错误


上面的代码有什么问题?

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

    $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);