替换干预图像中的颜色
Replace a color in intervention image
我想通过将用户上传的图像与背景颜色合并,将其转换为页面背景。
为了达到这种效果,我想将图像设置为灰度,然后替换颜色以匹配我的背景颜色(橙色),所以我想替换颜色(黑色匹配我的背景颜色,然后每个灰度级褪色到另一个更清晰的值)。
grescale()方法可以,但不知道如何替换。我尝试了着色功能,但它似乎只会使图像变亮太多,即使我之前使用 contrast() 使图像变暗也是如此。 LimitColors() 也不起作用。
怎样才能达到我想要的效果?
我设法得到我想要的显示,使用这个方法:
- 创建一个与我的主图像大小相同的图像,并填充我想要的颜色
- 使用我的主图作为第一张图的蒙版
- 另存为 PNG(我强调这里是因为我的测试不起作用,因为我使用的是默认的 JPEG 导出)。
使用 intervention's filters 使其更易于在其他地方使用,这是我的结果:
<?php
namespace App\ImageFilters;
use Intervention\Image\Filters\FilterInterface;
use Intervention\Image\Image;
use Intervention\Image\ImageManager;
class MyFilter implements FilterInterface
{
/** @var ImageManager */
private $imageManager;
const BACKGROUND_COLOR = '#FCB65B';
public function __construct()
{
$this->imageManager = new ImageManager();
}
public function applyFilter(Image $image)
{
$height = $image->getHeight();
$width = $image->getWidth();
return $this->imageManager
->canvas($width, $height)
->fill(self::BACKGROUND_COLOR)
->mask($image, false);
}
}
在我的图片管理脚本中是这样使用的:
$image = $image->filter(New MyFilter());
发帖前编辑:
- 我试图用
greyscale()
将主图像转换为黑白,但在省略它之后碰巧对蒙版功能没有影响。
我在将主图像用作蒙版之前稍微调亮了一点,我认为它最适合我的目的。
/* 用这个替换掩码调用 */
->mask($image->brightness(25), false);
我想通过将用户上传的图像与背景颜色合并,将其转换为页面背景。
为了达到这种效果,我想将图像设置为灰度,然后替换颜色以匹配我的背景颜色(橙色),所以我想替换颜色(黑色匹配我的背景颜色,然后每个灰度级褪色到另一个更清晰的值)。
grescale()方法可以,但不知道如何替换。我尝试了着色功能,但它似乎只会使图像变亮太多,即使我之前使用 contrast() 使图像变暗也是如此。 LimitColors() 也不起作用。
怎样才能达到我想要的效果?
我设法得到我想要的显示,使用这个方法:
- 创建一个与我的主图像大小相同的图像,并填充我想要的颜色
- 使用我的主图作为第一张图的蒙版
- 另存为 PNG(我强调这里是因为我的测试不起作用,因为我使用的是默认的 JPEG 导出)。
使用 intervention's filters 使其更易于在其他地方使用,这是我的结果:
<?php
namespace App\ImageFilters;
use Intervention\Image\Filters\FilterInterface;
use Intervention\Image\Image;
use Intervention\Image\ImageManager;
class MyFilter implements FilterInterface
{
/** @var ImageManager */
private $imageManager;
const BACKGROUND_COLOR = '#FCB65B';
public function __construct()
{
$this->imageManager = new ImageManager();
}
public function applyFilter(Image $image)
{
$height = $image->getHeight();
$width = $image->getWidth();
return $this->imageManager
->canvas($width, $height)
->fill(self::BACKGROUND_COLOR)
->mask($image, false);
}
}
在我的图片管理脚本中是这样使用的:
$image = $image->filter(New MyFilter());
发帖前编辑:
- 我试图用
greyscale()
将主图像转换为黑白,但在省略它之后碰巧对蒙版功能没有影响。 我在将主图像用作蒙版之前稍微调亮了一点,我认为它最适合我的目的。
/* 用这个替换掩码调用 */ ->mask($image->brightness(25), false);