これは長方形を含む元の画像です。切り抜いた画像を作成したい
そして、これは私がトリミング後に得たものです
したがって、新しい画像の寸法は正しいが、間違った部分がトリミングされていることがわかります。JS は次のとおりです。
$(document).ready(function()
{
$('#cropimage').Jcrop(
{
aspectRatio: 3 / 4,
maxSize: [150,200],
onSelect: updateCoords
});
});
function updateCoords(c)
{
$('#x').val(c.x);
$('#y').val(c.y);
$('#w').val(c.w);
$('#h').val(c.h);
};
そして、ここにPHPコードがあります
function crop($_POST)
{
$clipX = (int)$_POST['x'];
$clipY = (int)$_POST['y'];
$filename = (string)$_POST['image'];
$resizedHeight = (int)$_POST['h'];
$resizedWidth = (int)$_POST['w'];
// Original image's details
$original = dirname(__FILE__) . DIRECTORY_SEPARATOR . 'images/user_pictures/' . DIRECTORY_SEPARATOR . $filename;
$dimensions = getimagesize($original);
$old_width = $dimensions[0];
$old_height = $dimensions[1];
// image = original_image
$old_image = call_user_func('imagecreatefrom' . 'jpeg', $original);
// Crop image
if (function_exists('imagecreatetruecolor') && ($new_image = imagecreatetruecolor($resizedWidth, $resizedHeight)))
imagecopyresampled($new_image, $old_image, 0, 0, $clipX, $clipY, $resizedWidth, $resizedHeight, $old_width, $old_height);
imagejpeg($new_image,'images/user_pictures/'.$this->getUserID().'_picture.jpg');
}
以前にこれらのphp関数を使用したことはありませんが、いくつかのチュートリアルを読みましたが、エラーは表示されません. しかし、少なくとも 1 つある必要があります...何が間違っていますか? while original Image は、何らかの理由でサイズが変更されているようです。