PHP GD图像调整大小并使用/ jQuery裁剪

时间:2013-01-14 00:40:05

标签: php jquery gd crop jcrop

只是想在我的网站上放一个简单的缩略图裁剪器。 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中出现了错误。

1 个答案:

答案 0 :(得分:1)

您是否考虑过使用timthumb?这只是一个脚本,如果你传递了正确的参数,它会为你做一切。例如(未测试),如果您想要一个如下图像:

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完美融合,我也在项目中使用它。