Как добавить изображение водяного знака в laravel 5.2 в пакете интервенций?

Я использую фреймворк laravel 5.2, и я использую интервенционный пакет laravel, который мне подходит. Теперь здесь я сталкиваюсь с одной проблемой, я не знаю, что я делаю неправильно. Пожалуйста помоги:-

$myimage = Image::make(storage_path('app/images/test1.jpg'));
//Suppose $imyimage width is 3024 and height is 2016
$actualwidth = 3024;
$actualheight = 2016;

Теперь, когда я попробовал эти размеры 3024 * 2016 пикселей, тогда водяной знак не виден, в то время как когда я увеличиваю изображение, то он становится видимым. Теперь предположим, что у меня есть ширина и высота 1600*1027 пикселей, он показывает меня прямо в центре без увеличения. центр в 3024 * 2016 пикселей или любой пиксель с увеличением изображения.

$watermarkHeight =  Image::make(storage_path('watermark.png'))->height();
$watermarkWidth =  Image::make(storage_path('watermark.png'))->width();
$x = ($actualwidth - $watermarkWidth) / 2;
$y = ($actualheight - $watermarkHeight) / 2;
$img = Image::make(storage_path('app/images/test1.jpg'));
$img->insert(storage_path('watermark.png'), 'center',round($x),round($y));
$img->resize($actualwidth,$actualheight)->save(storage_path('app/images/watermark-test.jpg'));

Пожалуйста, помогите мне, что я делаю не так. Заранее спасибо:)

1 ответ

Решение

Если я правильно понял ваш вопрос, вот решение (не проверено)

$watermark =  Image::make(storage_path('watermark.png'));
$img = Image::make(storage_path('app/images/test1.jpg'));
//#1
$watermarkSize = $img->width() - 20; //size of the image minus 20 margins
//#2
$watermarkSize = $img->width() / 2; //half of the image size
//#3
$resizePercentage = 70;//70% less then an actual image (play with this value)
$watermarkSize = round($img->width() * ((100 - $resizePercentage) / 100), 2); //watermark will be $resizePercentage less then the actual width of the image

// resize watermark width keep height auto
$watermark->resize($watermarkSize, null, function ($constraint) {
    $constraint->aspectRatio();
});
//insert resized watermark to image center aligned
$img->insert($watermark, 'center');
//save new image
$img->save(storage_path('app/images/watermark-test.jpg'));
Другие вопросы по тегам