PHP+;JCrop-裁剪错误区域

PHP+;JCrop-裁剪错误区域,php,jcrop,Php,Jcrop,我试图用jcrop保存一个裁剪过的图像,基于x,y,w,h。 我将轴x、y和宽度/高度发送到我的PHP文件,但裁剪区域是错误的 这是我的php函数 $axis_x = $_POST["x"]; $axis_y = $_POST["y"]; $width = $_POST["w"]; $height = $_POST["h"]; $path_foto = "imgs/3.jpg"; $targ_w = $width; $targ_h = $height; $jpeg_quality = 90;

我试图用jcrop保存一个裁剪过的图像,基于x,y,w,h。 我将轴x、y和宽度/高度发送到我的PHP文件,但裁剪区域是错误的

这是我的php函数

$axis_x = $_POST["x"];
$axis_y = $_POST["y"];
$width = $_POST["w"];
$height = $_POST["h"];
$path_foto = "imgs/3.jpg";
$targ_w = $width;
$targ_h =  $height;
$jpeg_quality = 90;
$src = $path_foto;
$img_r = imagecreatefromjpeg($src);
$dst_r = ImageCreateTrueColor($targ_w, $targ_h);

imagecopyresampled($dst_r, $img_r, 0, 0, $axis_x, $axis_y, $width, $targ_w, $targ_h, $height);

imagejpeg($dst_r, $path_foto, $jpeg_quality);
该坐标由jcrop在每次重定图像时隐藏的输入中设置。 问题总是出在错误的地方

我做错了什么?

(不知道结果的“错误”是什么,很难帮助你。)

但您正在/可能正在遇到的一些明显问题:

  • 调用
    imagecopyresampled()
    时参数的顺序错误:最后4个参数应该是
    $targ\u w、$targ\u h、$width、$height

  • “坐标指的是左上角。”
    这意味着
    y=0
    位于图像的顶部,而不是底部。因此,如果您的
    $\u POST[“y”]
    是图像底部的像素数,则需要从原始图像的高度中减去该值,然后图像才能正常工作

  • 使用您的代码,并使用一些硬编码值:

    <?php
    $axis_x = 115;
    $axis_y = 128;
    $width = 95;
    $height = 128;
    $path_foto = "/Users/gb/Downloads/original.jpg";
    $targ_w = $width;
    $targ_h =  $height;
    $jpeg_quality = 90;
    $src = $path_foto;
    $img_r = imagecreatefromjpeg($src);
    $dst_r = ImageCreateTrueColor($targ_w, $targ_h);
    
    imagecopyresampled($dst_r, $img_r, 0, 0, $axis_x, $axis_y, $targ_w, $targ_h, $width, $height);
    
    imagejpeg($dst_r, "/Users/gb/Downloads/cropped.jpg", $jpeg_quality);
    

    imagecopyresampled($image\u p,$image,0,0,0,0,$new\u width,$new\u height,$width,$height)尝试
    图像复制重采样($dst_r、$img_r、0、0、$axis_x、$axis_y、$targ_w、$targ_h、$width、$height)。(注意,$width变量被下移了。)我尝试这样做,但不起作用?