gpt4 book ai didi

php - 如何在 Laravel php 中保持图像和水印的纵横比

转载 作者:行者123 更新时间:2023-12-04 14:05:39 25 4
gpt4 key购买 nike

我正在尝试将 800x100 像素的水印添加到分辨率大于 800x100 的图像,即 801x110、1200x1000、1300x200、1920x1080、4000x2010 等。

我想将水印和图片的宽高比保持在2:50。即,如果图像的宽度为 1000px,则图像上的 watarmark 应占据 20px(1000/50)。

这是我的功能:

helper.php

use Image;
//calling from Controller

public static function addwatermark ($name) {

$thumbnail = Image::make($name);
$imageWidth = $thumbnail->width();
$watermarkWidth = '800px';

$watermarkSource = 'public/img/watermark/watermark.png';
$thumbnail->insert($watermarkSource, 'bottom-left', 0, 0);
$thumbnail->save($name)->destroy();
}

ImageController.php

 $folder = 'public/folder/';
$large = 'myfile.jpeg';
Helper::addwatermark($folder.$large);

最佳答案

我认为这对你有用:

public static function addwatermark ($name) {
{
$thumbnail = Image::make($name);
$imageWidth = $thumbnail->width();
$watermarkSource = Image::make(public_path('img/watermark/watermark.png'));

$watermarkSize = round(20 * $imageWidth / 50);
$watermarkSource->resize($watermarkSize, null, function ($constraint) {
$constraint->aspectRatio();
});

$thumbnail->insert($watermarkSource, 'bottom-left', 0, 0);
$thumbnail->save($name)->destroy();
}

关于php - 如何在 Laravel php 中保持图像和水印的纵横比,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68604977/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com