JCrop обрезает не ту область

Мне нужна помощь с моей реализацией JCrop. Я пытался следовать руководству, но всякий раз, когда я выбираю область, она не выбирает то, что я выбрал. Вместо этого он занимает некоторую область за пределами моего выбора. Иногда это занимает область почти должным образом (я думаю из-за размера фотографии), но главным образом это берет неправильную область. Пожалуйста помоги. Вот мой код:

Примечание $ photo — это загруженное изображение. Он загружается должным образом, так что никаких проблем по этому поводу.

120 x 120 — это пиксели, в которые я хочу сохранить загруженные изображения, чтобы сэкономить место на диске. Кроме того, вот CSS <img> элемент, где я отображаю изображение для обрезки:

max-width: 100%;
height: auto;
display: inline-block;
position: relative;

Вот мой PHP-код:

$twidth = 120;
$theight = 120;
$quality = 90;
$src = imagecreatefromjpeg($photo);
$dst = ImageCreateTrueColor($twidth, $theight);
$x = $_POST['x'];
$y = $_POST['y'];
$w = $_POST['w'];
$h = $_POST['h'];
imagecopyresampled($dst, $src, 0, 0, $x, $y, $twidth, $theight, $w, $h);
imagejpeg($dst, $photo, $quality);

1

Решение

Проблема здесь в том, что вы изменяете размер окна изображения с помощью CSS. Это создает трудности для сценария, чтобы найти правильную область.
Вместо этого вы должны ограничить ширину / высоту блока функцией Jcrop, как показано ниже:

$('#cropbox').Jcrop({
boxWidth: 480,   //Maximum width you want for your bigger images
boxHeight: 480,  //Maximum Height for your bigger images
...
});

Если вы используете эту настройку Jcrop, она займет требуемую область, в противном случае она не будет работать должным образом.

С наилучшими пожеланиями

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]