jz828059
Новичок
Приветствую.
Прошу подсказки по проблеме.
Есть код наложения водяного знака на изображение. Используется плагин PHP Image Workshop.
Вопрос: как замостить изображение водяным знаком по принципу плитки?
Вообще хотелось бы, чтобы была возможность менять "точку старта мощения", а так же возможность устанавливать горизонтальные/вертикальные интервалы (величина швов плитки).
Какими вообще инструментами легче всего решить такую проблему?
Прошу подсказки по проблеме.
Есть код наложения водяного знака на изображение. Используется плагин PHP Image Workshop.
Вопрос: как замостить изображение водяным знаком по принципу плитки?
Вообще хотелось бы, чтобы была возможность менять "точку старта мощения", а так же возможность устанавливать горизонтальные/вертикальные интервалы (величина швов плитки).
Какими вообще инструментами легче всего решить такую проблему?
PHP:
<?php
// Include Library
require_once './vendor/autoload.php';
use PHPImageWorkshop\ImageWorkshop; // Use the namespace of ImageWorkshop
// Get images
$image = ImageWorkshop::initFromPath('./files/'.$_POST['basicImage']);
$watermark = ImageWorkshop::initFromPath('./files/'.$_POST['waterMark']);
// Settings
$dirPath = './files/';
$filename = "temp-image.jpg";
$createFolders = false;
$backgroundColor = '$ffffff'; // transparent, only for PNG (otherwise it will be white if set null)
$imageQuality = 100; // useless for GIF, usefull for PNG and JPEG (0 to 100%)
$watermarkOpacity = $_POST['opacity'];
$xpos = $_POST['xpos'];
$ypos = $_POST['ypos'];
// Add opacity to watermark
$watermark->opacity($watermarkOpacity);
// Prepare image
$image->save($dirPath, $filename, $createFolders, $backgroundColor, $imageQuality); // Convert basic layer to jpg
// Resize
$img = imagecreatefromjpeg('./files/temp-image.jpg');
$resizeWidth = ImageSX($img);
$resizeHeight = ImageSY($img);
$image = ImageWorkshop::initFromPath('./files/'.$filename); // Get new layer
// Find out which dimensions is bigger and resize
if ($resizeWidth > $resizeHeight)
{
$image->resizeInPixel(650, null, true);
}
else
{
$image->resizeInPixel(null, 534, true);
}
// Adding watermark
$image->addLayerOnTop($watermark, $xpos, $ypos, 'LT'); // Add watermark to basic layer
// Result image
$filename = "result.jpg";
$image->save($dirPath, $filename, $createFolders, $backgroundColor, $imageQuality);
// Send to ajax
echo __DIR__."/files/".$filename;
exit;