Страницы

Поиск по вопросам

суббота, 22 июня 2019 г.

PHP вставка части изображения

Есть шаблон в PNG
И есть скриншот

Средствами PHP нужно:
а) Обрезать (изменить размер?) скриншот под размеры экрана шаблона (экран вырезан, он прозрачный).
б) Придать перспективу скриншоту.
в) Вставить скриншот на прозрачную область шаблона.
Что нужно использовать - GD, Imagick? И как вставлять скриншот - по координатам или по маске экрана шаблона?


Ответ

Я думаю, стоит использовать ImageMagick. Он умеет искажать в перспективе, по четырём точкам – что вам и нужно. И вот примеры искажений на php – вам понадобится Bilinear:
//Example 5 - Bilinear
$imagick = new \Imagick(realpath($this->control->getImagePath())); $points = array( 0, 0, 25, 25, # top left 176, 0, 126, 0, # top right 0, 135, 0, 105, # bottom right 176, 135, 176, 135 # bottum left ); $imagick->setImageBackgroundColor("#fad888"); $imagick->setImageVirtualPixelMethod(\Imagick::VIRTUALPIXELMETHOD_BACKGROUND); $imagick->distortImage(\Imagick::DISTORTION_BILINEAR, $points, true); header("Content-Type: image/jpeg"); echo $imagick;
Понадобятся 4 точки из исходного изображения – просто углы скриншота, и 4 точки, в которые они должны после искажения попасть – границы области экрана в PNG.
Ваш скрин не совсем хорош пропорциями: он квадратный, а у экрана iPad mini экран 4:3 (1024:768). Если вписывать по ширине, снизу останется пустое место. Если по высоте, край пропадёт из виду. Просто вписать – растянется в высоту.

Комментариев нет:

Отправить комментарий