使用 libvips 创建形状 ruby

Create a shape with libvips ruby

如何将任意颜色和形状的图片转换成它的形状?作为示例,我附上了输入图像和所需的输出。我需要使用 ruby 和 ruby-vips gem 进行此转换。一般来说,我需要用单一颜色填充任何非 alpha 通道的东西。

你可以use [ ] to get bands出一张图片。你的图片是RGBA,所以0、1、2分别是R、G、B,3是A。

alpha = image[3]

您也可以使用范围,例如:

rgb = image[0..2]

获取前三个波段。 bandsplit 将图像分解为单波段图像数组:

r, g, b, a = image.bandsplit

alpha 为 0 表示透明,255 表示纯色,听起来您更喜欢它的倒数。因此:

mask = image[3].invert