-
Notifications
You must be signed in to change notification settings - Fork 0
/
task_2.php
37 lines (26 loc) · 2.45 KB
/
task_2.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
<?php
/* 2. Веб-разработка
На диске лежит файл image.png, размер 20000 на 20000. Вывести картинку как баннер размером 200 на 100 пикселей.
Обратите внимание на размер и пропорции, и подумайте о времени загрузки.
Пришлите ссылку на репозиторий с решением
Важно: решение требует использования PHP, сжатие картинки средствами HTML/CSS является некорректным решением. */
// Переменная $imagePath содержит путь до необходимого файла
$imagePath = __DIR__ . '\image.png';
// Создаем новое изображение из файла по адресу $imagePath и записываем его идентификатор в переменную $image
$image = imagecreatefrompng($imagePath);
/* Создаем изображение черного цвета с заданными шириной (200) и высотой (100) и записываем его идентификатор
в переменную $imgBlack */
$imgBlack = imagecreatetruecolor(200, 100);
// Создаем белый цвет для изображения $imgBlack и записываем его идентификатор в переменную $white
$white = imagecolorallocate($imgBlack, 255, 255, 255);
// Рисуем прямоугольник белого цвета размером 200*100 на черном изображении
imagefilledrectangle($imgBlack, 0, 0, 200, 100, $white);
/* Берём прямоугольный участок изображения $image в координатах по оси х (0 - 236), по оси у (0 - 214)
и помещаем его на изображение $imgBlack в координаты по оси х (50 - 100), по оси у (0 - 100) */
imagecopyresampled($imgBlack, $image, 50, 0, 0, 0, 100, 100, 236, 214);
// Сохраняем полученное изображение $imgBlack по указанному адресу
imagepng($imgBlack, 'image-cropped.png');
// Уничтожаем изображение $image для освобождения памяти
imagedestroy($image);
// Выводим полученное изображение как баннер размером 200 на 100 пикселей
echo '<img src="\image-cropped.png">';