I am trying to add an image watermark to a base image using PHP. I have written the code below to achieve it and am placing horizontally the watermark image centred on the base image.
<?php
header('content-type: image/jpeg');
$poster_img = dirname(__FILE__) . '/base.jpeg';
$water_img = dirname(__FILE__) . '/watermark.png';
list($poster_width, $poster_height) = getimagesize($poster_img);
list($water_width, $water_height) = getimagesize($water_img);
$posterimage = imagecreatefromjpeg($poster_img); // base image
$watermark = imagecreatefrompng($water_img); // company logo
$x = ($poster_width - $water_width) / 2;
$y = ($poster_height - $water_height) / 2;
imagecopy($posterimage, $watermark, $x, $y, 0, 0, $water_width, $water_height);
imagejpeg($posterimage, 'watermarked_image.jpg');
imagedestroy($posterimage);
imagedestroy($watermark);
?>
However, I am looking for a solution to place the watermark 45 degrees inclined to the based image(centred and diagonally to the image). Please refer the image below
I have found solutions to place text watermark diagonally. Does anyone know how to place image watermark diagonally? Thanks in advance!
you propably want to use
imagarotate()
on your watermak imagehttps://www.php.net/manual/en/function.imagerotate.php