1

私のサイトにサムネイル用のシンプルなクロッパーを配置したかっただけです。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に何か間違っているのかわからない。

4

1 に答える 1

1

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と美しく統合されており、私もプロジェクトで使用しました。

于 2013-01-14T01:01:57.787 に答える