Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/296.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 已裁剪但未保持纵横比_Php_Jquery_Image_Crop_Jcrop - Fatal编程技术网

Php 已裁剪但未保持纵横比

Php 已裁剪但未保持纵横比,php,jquery,image,crop,jcrop,Php,Jquery,Image,Crop,Jcrop,我正在裁剪图像,图像被裁剪得很好,但在我查看裁剪后的图像,它会从一些随机的地方裁剪图像,我不知道为什么会发生这种情况。我正在关注这个帖子 这里是Crop.php 您的目标宽度和高度与原始图像的纵横比相同吗?如果您看到我在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;