Обрезать изображение с помощью сценария PHP

Доброе утро,
Я хотел бы перейти от этого изображения:

Исходное изображение

К этому изображению:

введите описание изображения здесь

Это 81px справа и сверху.

Я понятия не имею, как это сделать. Спасибо :).

-2

Решение

Вы можете сделать это, используя Imagick метод cropImage():

<?php
// Load input image
$image = new Imagick('weather.png');

// Get width and height
$w= $image->getImageWidth();
$h= $image->getImageHeight();

// cropImage(width,height,startx,starty)
$image->cropImage($w-81,$h-81,0,81);

// Output result
$image->writeImage('result.png');
?>

Вы можете сказать, установлен ли у вас модуль Imagick в вашем PHP с помощью:

php -i | grep magick

Пример вывода

/usr/local/etc/php/7.2/conf.d/ext-imagick.ini,
imagick
imagick module => enabled
imagick module version => 3.4.3
imagick classes => Imagick, ImagickDraw, ImagickPixel, ImagickPixelIterator, ImagickKernel
Imagick compiled with ImageMagick version => ImageMagick 7.0.7-35 Q16 x86_64 2018-05-25 https://www.imagemagick.org
Imagick using ImageMagick library version => ImageMagick 7.0.7-35 Q16 x86_64 2018-05-25 https://www.imagemagick.org
imagick.locale_fix => 0 => 0
imagick.progress_monitor => 0 => 0
imagick.skip_version_check => 0 => 0

Или вы можете использовать GD библиотека, чтобы сделать то же самое — документация здесь:

<?php
// Load input image
$im = imagecreatefrompng('weather.png');

// Get width and height
$w  = imagesx($im);
$h  = imagesy($im);

// Crop
$im = imagecrop($im, ['x'=>0, 'y'=>81, 'width'=>$w-81, 'height'=>$h-81]);
imagepng($im, 'result.png');
?>

Вы можете сказать, установлен ли у вас модуль GD в вашем PHP с помощью:

php -i | grep GD

Пример вывода

GD Support => enabled
GD Version => bundled (2.1.0 compatible)
1

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

В Imagemagick другой способ сделать это — просто отрубить верхние 81 пиксель и правый 81 пиксель. Так

convert image -gravity north -chop 0x81 -gravity east -chop 81x0 result

Я не знаю Imagick, но команда chop находится в http://us3.php.net/manual/en/imagick.chopimage.php. Однако документация там не выглядит так, как будто она работает так же, как в Imagemagick, и, похоже, не использует гравитацию.

0

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector