Мне нужна помощь с моей реализацией 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);
Проблема здесь в том, что вы изменяете размер окна изображения с помощью CSS. Это создает трудности для сценария, чтобы найти правильную область.
Вместо этого вы должны ограничить ширину / высоту блока функцией Jcrop, как показано ниже:
$('#cropbox').Jcrop({
boxWidth: 480, //Maximum width you want for your bigger images
boxHeight: 480, //Maximum Height for your bigger images
...
});
Если вы используете эту настройку Jcrop, она займет требуемую область, в противном случае она не будет работать должным образом.
С наилучшими пожеланиями
Других решений пока нет …