如何使用jcrop裁剪正确的图像

问题描述 投票:0回答:1

我正在尝试实现jcrop函数,但我的裁剪图像的输出是错误的。以下是我的代码部分。第一部分是从我的代码底部的POST表单调用的PHP脚本。在PHP脚本之后有JQuery脚本。在底部有我用来提交我想要裁剪的图像的坐标的形式。

'''
***PHP script**
<?php
if ($_SERVER['REQUEST_METHOD'] == 'POST')
{

    $targ_w = 800;
    $targ_h = 800;


    $jpeg_quality = 100;

    $src='images/boolprv.jpg';



   $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,null,$jpeg_quality);

imagedestroy($dst_r);
    exit;
}
?>
***** jquery script ***
<script language="Javascript">

            $(function(){

                $('#cropbox').Jcrop({
                    aspectRatio: 1,
                    onSelect: updateCoords
                });

            });

            function updateCoords(c)
            {
                $('#x').val(c.x);
                $('#y').val(c.y);
                $('#w').val(c.w);
                $('#h').val(c.h);
            };

            function checkCoords()
            {
                if (parseInt($('#w').val())) return true;
                alert('Please select a crop region then press submit.');
                return false;
            };

        </script>
*****HTML form****

<img src= "images/boolprv.jpg" width="800" id="cropbox" /> 


        <form action="cropfirst.php" method="post" onsubmit="return checkCoords();">
            <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" />
      Nome: <input type="text" name="nome"><br>
   Cognome: <input type="text" name="cognome"><br>
            <input type="submit" value="Crop Image" />
        </form>

'''

结果是一个错误的裁剪区域,因为在1中你可以看到我想要裁剪的区域,但在2中我得到了Imagejpeg()函数的结果。

有人可以帮帮我吗?谢谢

php jcrop
1个回答
0
投票

问题是我将HTML表单中的宽度设置为“800”,这使得jCrop无法正常工作,因为PHP脚本中没有考虑此宽度设置。

改变后

<img src= "images/boolprv.jpg" width="800" id="cropbox" />

<img src= "images/boolprv.jpg" id="cropbox" />

一切正常,但现在每个图像都有自己的大小,结果不好看。如果我将width="70%"添加到我的HTML表单中,如何改进我的PHP脚本?如果宽度是固定的,它应该不是那么棘手,但我希望图像响应我正在使用的设备(PC,平板电脑或智能手机)。谢谢。

© www.soinside.com 2019 - 2024. All rights reserved.