Как обрезать изображения с помощью X Y, чего-то не хватает - PullRequest
0 голосов
/ 21 декабря 2011

Argh, с чего мне начать :) Ну, в настоящее время я установил jQuery, выберите область изображения, и я получил позиции X / Y, чтобы это работало.

Теперь я пытаюсь обрезать изображение, и оно прекрасно работает, когда я выбираю область размером менее 103 пикселей, это кажется, но если я выбираю большую область, она не обрезается так, как должно, и сохраняется только часть области.

Почему на самом деле и чего мне не хватает? мой вывод должен быть 103x103 px

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

$image_crop_x1 = $_POST['x1'];
$image_crop_x2 = $_POST['x2'];
$image_crop_y1 = $_POST['y1'];
$image_crop_y2 = $_POST['y2'];

$dest = imagecreatetruecolor(103, 103);
$src = imagecreatefromjpeg('../forum/temp/temp_avatars/1.jpg');

imagecopy($dest, $src, 0, 0, $image_crop_x1, $image_crop_y1, 418, 700);
imagejpeg($dest, "../forum/temp/temp_avatars/2.jpg", 100);

Ответы [ 2 ]

3 голосов
/ 19 января 2015

x2, y2 должна быть высшей точкой, когда x1, y1 должна быть нижней точкой обрезки.Посмотрите этот пример:

Example

Где x = y = 103. Ни в коем случае x1, y1, x2 или y2 не могут быть больше 103. Вы должны предотвратить это.

1 голос
/ 21 декабря 2011

Этот код работает ...

$image_crop_x1 = intval($_POST['x1']);
$image_crop_x2 = intval($_POST['x2']);
$image_crop_y1 = intval($_POST['y1']);
$image_crop_y2 = intval($_POST['y2']);

$dest = imagecreatetruecolor(103, 103);
$src = imagecreatefromjpeg('../forum/temp/temp_avatars/1.jpg');

imagecopy($dest, $src, 0, 0, $image_crop_x1, $image_crop_y1, $image_crop_x2, $image_crop_y2);
imagejpeg($dest, "../forum/temp/temp_avatars/2.jpg", 100);
imagedestroy($src);
imagedestroy($dest);
...