Я использую larvel 5.2 framework, и я использую пакет вмешательства 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'));
Пожалуйста, помогите мне, что я делаю неправильно. Заранее спасибо 🙂
Если я правильно понял ваш вопрос, вот решение (не проверено)
$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'));