gpt4 book ai didi

php - 裁剪图像无法正常工作,存储了错误的部分

转载 作者:行者123 更新时间:2023-11-30 18:11:38 25 4
gpt4 key购买 nike

这是包含矩形的原始图片,我想从中创建裁剪图像 enter image description here

这是裁剪后的效果 enter image description here

因此可以看出,新图像具有正确的尺寸,但裁剪了错误的部分。这是 JS:

$(document).ready(function()
{
$('#cropimage').Jcrop(
{
aspectRatio: 3 / 4,
maxSize: [150,200],
onSelect: updateCoords
});
});
function updateCoords(c)
{
$('#x').val(c.x);
$('#y').val(c.y);
$('#w').val(c.w);
$('#h').val(c.h);
};

这是PHP代码

function crop($_POST)
{
$clipX = (int)$_POST['x'];
$clipY = (int)$_POST['y'];
$filename = (string)$_POST['image'];
$resizedHeight = (int)$_POST['h'];
$resizedWidth = (int)$_POST['w'];

// Original image's details
$original = dirname(__FILE__) . DIRECTORY_SEPARATOR . 'images/user_pictures/' . DIRECTORY_SEPARATOR . $filename;

$dimensions = getimagesize($original);
$old_width = $dimensions[0];
$old_height = $dimensions[1];

// image = original_image
$old_image = call_user_func('imagecreatefrom' . 'jpeg', $original);


// Crop image
if (function_exists('imagecreatetruecolor') && ($new_image = imagecreatetruecolor($resizedWidth, $resizedHeight)))
imagecopyresampled($new_image, $old_image, 0, 0, $clipX, $clipY, $resizedWidth, $resizedHeight, $old_width, $old_height);

imagejpeg($new_image,'images/user_pictures/'.$this->getUserID().'_picture.jpg');
}

我以前从未使用过那些 php 函数,但我已经阅读了一些教程并且没有看到任何错误。但必须至少有 1 ... 我做错了什么?无论出于何种原因,原始图像似乎都已调整大小。

最佳答案

如果你想根据 (x,y,w,h) (10,15,30,35) 进行裁剪,那么你的函数将是:

imagecopyresampled ( $dst_image , $src_image , 0, 0 , 10 , 15 , 30-10 , 35-15 , 30-10 , 35-15 )

因为您是将 20x20 从原始图像复制到新图像中,所以这些尺寸是您的新尺寸和 dst_w、dst_h 以及您的 src_w、src_h。

$old_width 和 $old_height 现在是原始图像的完整宽度,而它们应该是裁剪部分的宽度和高度。

$old_width = $resizedWidth;
$old_height = $resizedHeight;

关于php - 裁剪图像无法正常工作,存储了错误的部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14440899/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com