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