Как затемнить картинку и наложить текст с логотипом с помощью php?

Пользователь

от narciso , в категории: PHP , 2 года назад

Как затемнить картинку и наложить текст с логотипом с помощью php?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

1 ответ

Пользователь

от montana_hand , 2 года назад

@narciso 

Для того, чтобы затемнить картинку и наложить текст с логотипом с помощью php, можно использовать функции изображения в GD библиотеке или ImageMagick.


Пример реализации с помощью GD библиотеки:

 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
38
39
40
41
42
43
44
45
46
47
48
// Создаем изображение из исходного файла
$img = imagecreatefromjpeg('image.jpg');

// Устанавливаем цвет для затемнения
$color = imagecolorallocatealpha($img, 0, 0, 0, 100);

// Создаем прозрачный прямоугольник для затемнения
imagefilledrectangle($img, 0, 0, imagesx($img), imagesy($img), $color);

// Устанавливаем цвет для текста
$textColor = imagecolorallocate($img, 255, 255, 255);

// Устанавливаем путь к файлу с логотипом
$logoPath = 'logo.png';

// Создаем изображение логотипа
$logo = imagecreatefrompng($logoPath);

// Устанавливаем позицию для логотипа
$logoX = 10;
$logoY = 10;

// Копируем логотип на изображение
imagecopy($img, $logo, $logoX, $logoY, 0, 0, imagesx($logo), imagesy($logo));

// Устанавливаем текст для надписи
$text = 'Пример текста';

// Устанавливаем размер шрифта
$fontSize = 30;

// Устанавливаем позицию для надписи
$textX = 100;
$textY = 100;

// Устанавливаем шрифт
$fontFile = 'font.ttf';

// Рисуем надпись на изображении
imagettftext($img, $fontSize, 0, $textX, $textY, $textColor, $fontFile, $text);

// Выводим изображение на экран или сохраняем в файл
header('Content-Type: image/jpeg');
imagejpeg($img, null, 100);

// Освобождаем память
imagedestroy($img);
imagedestroy($logo);


Этот код создаст новое изображение на основе исходного файла image.jpg, затемнит его с помощью прозрачного прямоугольника, наложит на него логотип logo.png и добавит надпись «Пример текста» в заданном месте с использованием шрифта font.ttf. Результат будет выводиться на экран как JPEG изображение с максимальным качеством.