MagicWandTool

Inheritance: java.lang.Object

All Implemented Interfaces: com.aspose.imaging.IPartialArgb32PixelLoader

public class MagicWandTool implements IPartialArgb32PixelLoader

Klassen för huvudlogiken i Magic Wand-algoritmen.

Metoder

MetodBeskrivning
select(RasterImage source, MagicWandSettings settings)Skapar en ny ImageBitMask baserad på MagicWandSettings och käll- RasterImage.
process(Rectangle pixelsRectangle, int[] pixels, Point start, Point end)Bearbetar de inlästa pixlarna.

Example: The example shows how to select a simple area of an image based on tone and color of any pixel using Magic Wand tool.

String imageFilePath = "input.png";
String outputFilePath = "masked.png";
try (RasterImage image = (RasterImage)Image.load(imageFilePath))
{
    // Skapa en ny mask med magiskt stav-verktyg baserat på ton och färg för pixel (120, 100) med anpassad tröskel lika med 150
    MagicWandTool
            .select(image, new MagicWandSettings(120, 100) {{ setThreshold(150); }})
            // Applicera masken på bilden
            .apply();

    // Spara bilden med tvingad transparensfärgstyp‑alternativ
    image.save(outputFilePath, new PngOptions()
    {{
        setColorType(PngColorType.TruecolorWithAlpha);
    }});
}

Example: The example shows how to select a complicated area of an image using Magic Wand tool and the ability to interact with masks (invert, union, subtract).

String imageFilePath = "input.png";
String outputFilePath = "masked-complex.png";
try (RasterImage image = (RasterImage)Image.load(imageFilePath))
{
    // Skapa en ny mask med magiskt stav-verktyg baserat på ton och färg för pixel (845, 128)
    MagicWandTool.select(image, new MagicWandSettings(845, 128))
            // Förena den befintliga masken med den angivna som skapats av magiskt stav-verktyg
            .union(new MagicWandSettings(416, 387))
            // Invertera den befintliga masken
            .invert()
            // Subtrahera den angivna masken skapad av magiskt stav-verktyg med specificerad tröskel från den befintliga
            .subtract(new MagicWandSettings(1482, 346) {{ setThreshold(69); }})
            // Subtrahera fyra angivna rektangelmasker från den befintliga masken en efter en
            .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))
            // Mjukgör masken med angivna inställningar
            .getFeathered(new FeatheringSettings() {{ setSize(3); }})
            // Applicera masken på bilden
            .apply();

    // Spara bilden
    image.save(outputFilePath);
}

select(RasterImage source, MagicWandSettings settings)

public static ImageBitMask select(RasterImage source, MagicWandSettings settings)

Skapar en ny ImageBitMask baserad på MagicWandSettings och käll- RasterImage.

Parameters:

ParameterTypBeskrivning
sourceRasterImageRasterbild för algoritmen att arbeta på.
settingsMagicWandSettingsInställningar för magiskt stav-algoritmen som används vid skapande av mask.

Returns: ImageBitMask - New ImageBitMask.

process(Rectangle pixelsRectangle, int[] pixels, Point start, Point end)

public final void process(Rectangle pixelsRectangle, int[] pixels, Point start, Point end)

Bearbetar de inlästa pixlarna.

Parameters:

ParameterTypBeskrivning
pixelsRectangleRectanglePixelrektangeln.
pixlarint[]De 32-bitars ARGB-pixlarna.
startPointStartpunkten för pixlarna. Om den inte är lika med (vänster,top) betyder det att vi inte har en fullständig rektangel.
endPointSlutpunkten för pixlarna. Om den inte är lika med (höger,botten) betyder det att vi inte har en fullständig rektangel.