Чтобы удалить водяной знак с изображения с помощью 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.