Php 已裁剪但未保持纵横比
我正在裁剪图像,图像被裁剪得很好,但在我查看裁剪后的图像,它会从一些随机的地方裁剪图像,我不知道为什么会发生这种情况。我正在关注这个帖子 这里是Crop.phpPhp 已裁剪但未保持纵横比,php,jquery,image,crop,jcrop,Php,Jquery,Image,Crop,Jcrop,我正在裁剪图像,图像被裁剪得很好,但在我查看裁剪后的图像,它会从一些随机的地方裁剪图像,我不知道为什么会发生这种情况。我正在关注这个帖子 这里是Crop.php 您的目标宽度和高度与原始图像的纵横比相同吗?如果您看到我在crop.php中创建的新创建的图像,我没有设置任何纵横比,因此我假设它是相同的,如果不是,您可以建议我如何使其相同吗?您必须做一些数学计算,因为您正在指定目标宽度和目标高度,宽度/高度是纵横比。。。因为你的目标和高度是一样的,所以你要做一个正方形。。所以,老实说,任何你处理的不
您的目标宽度和高度与原始图像的纵横比相同吗?如果您看到我在crop.php中创建的新创建的图像,我没有设置任何纵横比,因此我假设它是相同的,如果不是,您可以建议我如何使其相同吗?您必须做一些数学计算,因为您正在指定目标宽度和目标高度,宽度/高度是纵横比。。。因为你的目标和高度是一样的,所以你要做一个正方形。。所以,老实说,任何你处理的不是正方形的图像都会被扭曲,我建议你看看Imagick库,因为它对于你需要做的事情来说更好一些。
<form id="crop_form" action="crop.php" method="post">
<input type="hidden" id="x" name="x" />
<input type="hidden" id="y" name="y" />
<input type="hidden" id="w" name="w" />
<input type="hidden" id="h" name="h" />
<input type="hidden" name="src" id="src"/>
<input type="hidden" name="original_width" id="original_width" value="<?php echo $row['width']; ?>"/>
<input type="hidden" name="original_height" id="original_height" value="<?php echo $row['height']; ?>"/>
<a id="image_crop" name="image_crop" >
<img src="images/icon-01.png" width="41" height="41" alt="" />
</a>
</form>
</div>
<?php
$width = $row['width'];
$height = $row['height'];
?>
<img title="" id="main_image" src="<?php echo "patternimages/" . $row['img_name'] ?>" width="<?php echo $width; ?>" height="<?php echo $height; ?>"> </div>
$(function() {
var main_image_src = jQuery('#main_image').attr('src');
jQuery('#src').val(main_image_src);
jQuery('#image_crop').on('click', function() {
// checkCoords();
jQuery('#crop_form').submit();
});
$('#main_image').Jcrop({
aspectRatio: 1,
onSelect: updateCoords,
});
});
function updateCoords(c)
{
$('#x').val(c.x);
$('#y').val(c.y);
$('#w').val(c.w);
$('#h').val(c.h);
}
<?php
session_start();
$targ_w = $targ_h = 150;
$jpeg_quality = 90;
$src = $_POST['src'];
$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']);
header('Content-type: image/jpeg');
imagejpeg($dst_r, 'dummy.jpg', $jpeg_quality);
exit;