Ответ 1
GD поставляется вместе со всеми установками PHP с версии 4.3.6, поэтому есть вероятность, что у вас есть.
Вот шаги, которые вам нужно предпринять...
- Создайте ресурс изображения, используя одну из функций GD
imagecreatefrom*()
. Тот, который вы используете, зависит от типа изображения, с которым вы имеете дело с - Определите размеры изображения с помощью
imagesx()
иimagesy()
- Определите координаты катушки, используя следующий алгоритм и обрезку, используя
imagecopy()
Найти скользящие координаты
$width = imagesx($img);
$height = imagesy($img);
$centreX = round($width / 2);
$centreY = round($height / 2);
$cropWidth = 200;
$cropHeight = 130;
$cropWidthHalf = round($cropWidth / 2); // could hard-code this but I'm keeping it flexible
$cropHeightHalf = round($cropHeight / 2);
$x1 = max(0, $centreX - $cropWidthHalf);
$y1 = max(0, $centreY - $cropHeightHalf);
$x2 = min($width, $centreX + $cropWidthHalf);
$y2 = min($height, $centreY + $cropHeightHalf);
Не стесняйтесь использовать мой класс манипуляции с изображениями, он должен сделать некоторые аспекты намного проще - https://gist.github.com/880506
$im = new ImageManipulator('/path/to/image');
$centreX = round($im->getWidth() / 2);
$centreY = round($im->getHeight() / 2);
$x1 = $centreX - 100;
$y1 = $centreY - 65;
$x2 = $centreX + 100;
$y2 = $centreY + 65;
$im->crop($x1, $y1, $x2, $y2); // takes care of out of boundary conditions automatically
$im->save('/path/to/cropped/image');