Как убрать водяной знак с помощью PHP?

Чтобы удалить водяной знак с изображения с помощью PHP, вы можете использовать библиотеку GD или Imagick. Вот примеры реализации для обоих вариантов:

Используя библиотеку GD:

// Открытие исходного изображения
$image = imagecreatefromjpeg('original.jpg');

// Загрузка водяного знака
$watermark = imagecreatefrompng('watermark.png');

// Получение размеров исходного изображения и водяного знака
$width = imagesx($image);
$height = imagesy($image);
$watermark_width = imagesx($watermark);
$watermark_height = imagesy($watermark);

// Расположение водяного знака - по центру
$position_x = ($width - $watermark_width) / 2;
$position_y = ($height - $watermark_height) / 2;

// Наложение водяного знака на изображение
imagecopy($image, $watermark, $position_x, $position_y, 0, 0, $watermark_width, $watermark_height);

// Сохранение измененного изображения
imagejpeg($image, 'result.jpg');

// Очистка памяти
imagedestroy($image);
imagedestroy($watermark);

Используя библиотеку Imagick:

// Загрузка исходного изображения
$image = new Imagick('original.jpg');

// Загрузка водяного знака
$watermark = new Imagick('watermark.png');

// Масштабирование водяного знака до размеров исходного изображения
$watermark->scaleImage($image->getImageWidth(), $image->getImageHeight());

// Наложение водяного знака на изображение
$image->compositeImage($watermark, Imagick::COMPOSITE_OVER, 0, 0);

// Сохранение измененного изображения
$image->writeImage('result.jpg');

// Очистка памяти
$image->destroy();
$watermark->destroy();

В обоих случаях вы должны указать путь к исходному изображению и водяному знаку. Очищение памяти важно, чтобы не загромождать серверные ресурсы.

Если вы хотите убрать водяной знак с видео, то процесс будет сложнее и требовать использования специализированных библиотек или инструментов, таких как FFmpeg или OpenCV.