繁体   English   中英

带jQuery的PHP GD图像调整大小和裁剪

[英]PHP GD image resize and crop w/ jQuery

只是想在我的网站上放置一个用于缩略图的简单裁剪器。 jQuery插件jCrop捕获了坐标并将其发送到PHP很好,我已经对其进行了测试。 问题是当PHP对其进行裁剪时,它给我留下了一个空文件,文件大小为“ 0”。 这是PHP:

//GRAB DIMENSIONS
        //COORDINATES OF CROPPER BOX
        $getDimX = htmlspecialchars(trim(urldecode($_POST['valX'])));
        $getDimY = htmlspecialchars(trim(urldecode($_POST['valY'])));
        //WIDTH AND HEIGHT OF CROPPER BOX
        $getDimW = htmlspecialchars(trim(urldecode($_POST['valW'])));
        $getDimH = htmlspecialchars(trim(urldecode($_POST['valH'])));
        //SQUARE THUMBNAIL DIMENSIONS
        $targ_w = $targ_h = 150;

        //DIRECTORIES
        $src = '../users/'.$_SESSION['userName'].'/temp/defaultPicTempResizePng.png';
        $defaultDir = '../users/'.$_SESSION['userName'].'/default/defaultPic.png';

        $img_r = imagecreatefrompng($src);
        $dst_r = ImageCreateTrueColor( $targ_w, $targ_h );

        imagecopyresampled($dst_r,$img_r,0,0,$getDimX,$getDimY,
        $targ_w,$targ_h,$getDimW,$getDimH);

        imagepng($dst_r, $defaultDir, 100);

        $JSONData = array('true', ' '); 
    echo json_encode($JSONData); 

经过一番谷歌搜索后,我发现有些人需要图像的原始宽度和高度。 如果需要的话,这很容易获得并使用jQuery发送到php,但是如果需要,我应该在哪里输入呢? 不知道这是我做错的还是我的php中有不正确的东西。

您是否考虑过使用timthumb 这只是1个脚本,如果您传递正确的参数,它会为您做所有事情。 例如(未测试),如果您想要类似以下的图像:

width = 100
height = 75
quality = 90%
crop x = 0
crop y = 0
crop width = 100
crop height = 75

您只需要对以下内容进行请求:

http://yourserver.com/timthumb.php?src=path/to/image.png&w=100&h=75&q=90&cx=0&cy=0&cw=100&ch=75

从左上角开始,这将导致图像的缩略图为100x75。 Timthumb与jCrop完美集成,我也在项目中使用过它。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM