Страницы

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

четверг, 9 апреля 2020 г.

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

#php #изображения #gd #imagick

                    
Есть шаблон в PNG 


И есть скриншот



Средствами PHP нужно:

а) Обрезать (изменить размер?) скриншот под размеры экрана шаблона (экран вырезан,
он прозрачный).

б) Придать перспективу скриншоту.

в) Вставить скриншот на прозрачную область шаблона.

Что нужно использовать - GD, Imagick? И как вставлять скриншот - по координатам или
по маске экрана шаблона?
    


Ответы

Ответ 1



Я думаю, стоит использовать 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). Если вписывать по ширине, снизу останется пустое место. Если по высоте, край пропадёт из виду. Просто вписать – растянется в высоту.

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

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