类 ImageMask

ImageMask class

描述二值图像掩码。

public abstract class ImageMask : IImageMask

属性

名称描述
Bounds { get; }获取此掩码的边界(以像素为单位)。
Height { get; }获取此掩码的高度(以像素为单位)。
abstract Item { get; }获取指定像素的透明度。
abstract SelectionBounds { get; }获取掩码选定部分的边界(以像素为单位)。
Source { get; }获取用于创建此掩码的源图像(如果存在)。
Width { get; }获取此掩码的宽度(以像素为单位)。

方法

名称描述
Apply()如果存在,将当前遮罩应用于 RasterImage 源。
ApplyTo(RasterImage)将当前遮罩应用于指定的 RasterImage
abstract Clone()创建一个新对象,该对象是当前实例的副本。
abstract Crop(Rectangle)使用指定的矩形裁剪遮罩。
Crop(Size)使用指定的尺寸裁剪遮罩。
Crop(int, int)使用指定的宽度和高度裁剪遮罩。
ExclusiveDisjunction(ImageMask)获取当前遮罩与提供的遮罩的异或。
ExclusiveDisjunction(MagicWandSettings)获取当前遮罩与对遮罩源应用魔棒选择后的结果的异或。
ExclusiveDisjunction(RasterImage, MagicWandSettings)获取当前遮罩与对提供的图像应用魔棒选择后的结果的异或。
GetByteOpacity(int, int)获取指定像素的透明度,精确到字节。
GetFeathered(FeatheringSettings)获取使用指定设置羽化边界的灰度遮罩。
abstract Inflate(int)按指定量膨胀此遮罩。
Intersect(ImageMask)获取当前遮罩与提供的遮罩的交集。
Intersect(MagicWandSettings)获取当前遮罩与对遮罩源应用魔棒选择结果的交集。
Intersect(RasterImage, MagicWandSettings)获取当前掩码与对提供的图像应用魔棒选择的结果的交集。
Invert()获取当前掩码的反转。
IsOpaque(int, int)检查指定像素是否不透明。
IsTransparent(int, int)检查指定像素是否透明。
Subtract(ImageMask)获取当前掩码减去提供的掩码的结果。
Subtract(MagicWandSettings)获取对当前掩码源应用魔棒选择的结果,并从掩码中减去该结果。
Subtract(RasterImage, MagicWandSettings)获取对提供的图像应用魔棒选择的结果,并从当前掩码中减去该结果。
Union(ImageMask)获取当前掩码与提供的掩码的并集。
Union(MagicWandSettings)获取当前掩码与对掩码源应用魔棒选择的结果的并集。
Union(RasterImage, MagicWandSettings)获取当前掩码与对提供的图像应用魔棒选择的结果的并集。
operator +两个掩码的并集。
operator ^两个掩码的异或。
explicit operatorImageGrayscaleMask 转换运算符。
operator !反转掩码。
operator *两个掩码的交集。
operator -从第一个掩码中减去第二个掩码。

示例

示例展示了如何使用魔棒工具选择图像的复杂区域以及与掩码交互的能力(反转、并集、减去)。

[C#]

var imageFilePath = "input.png"; 
using (RasterImage image = (RasterImage)Image.Load(inputFilePath))
{
    // 使用魔棒工具基于像素 (845, 128) 的色调和颜色创建新掩码
    MagicWandTool.Select(image, new MagicWandSettings(845, 128))
        // 将现有掩码与由魔棒工具创建的指定掩码进行并集
        .Union(new MagicWandSettings(416, 387))
        // 反转现有掩码
        .Invert()
        // 从现有掩码中减去由魔棒工具使用指定阈值创建的指定掩码
        .Subtract(new MagicWandSettings(1482, 346) { Threshold = 69 })
        // 一次一次地从现有掩码中减去四个指定的矩形掩码
        .Subtract(new RectangleMask(0, 0, 800, 150))
        .Subtract(new RectangleMask(0, 380, 600, 220))
        .Subtract(new RectangleMask(930, 520, 110, 40))
        .Subtract(new RectangleMask(1370, 400, 120, 200))
        // 使用指定设置羽化掩码
        .GetFeathered(new FeatheringSettings() { Size = 3 })
        // 将掩码应用于图像
        .Apply();
        
    // 保存图像
    image.Save(outputFilePath);
}

另请参见