MagicWandTool

Inheritance: java.lang.Object

All Implemented Interfaces: com.aspose.imaging.IPartialArgb32PixelLoader

public class MagicWandTool implements IPartialArgb32PixelLoader

Magic Wand algoritması ana mantığı için sınıf.

Yöntemler

YöntemAçıklama
select(RasterImage source, MagicWandSettings settings)Yeni bir ImageBitMask oluşturur; MagicWandSettings ve kaynak RasterImage temel alınarak.
process(Rectangle pixelsRectangle, int[] pixels, Point start, Point end)Yüklenen pikselleri işler.

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))
{
    // Özel eşik değeri 150 olan, (120, 100) pikselinin ton ve rengine dayanarak magic wand aracıyla yeni bir maske oluşturun.
    MagicWandTool
            .select(image, new MagicWandSettings(120, 100) {{ setThreshold(150); }})
            // Maskeyi görüntüye uygula
            .apply();

    // Zorunlu şeffaflık renk tipi seçeneğiyle görüntüyü kaydet
    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))
{
    // (845, 128) pikselinin ton ve rengine dayanarak magic wand aracıyla yeni bir maske oluşturun.
    MagicWandTool.select(image, new MagicWandSettings(845, 128))
            // Mevcut maskeyi, magic wand aracıyla oluşturulan belirtilen maske ile birleştir
            .union(new MagicWandSettings(416, 387))
            // Mevcut maskeyi tersine çevir
            .invert()
            // Belirtilen eşik değeriyle magic wand aracıyla oluşturulan maskeyi mevcut maskeden çıkar
            .subtract(new MagicWandSettings(1482, 346) {{ setThreshold(69); }})
            // Belirtilen dört dikdörtgen maskeyi mevcut maskeden tek tek çıkar
            .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))
            // Maskeyi belirtilen ayarlarla yumuşat
            .getFeathered(new FeatheringSettings() {{ setSize(3); }})
            // Maskeyi görüntüye uygula
            .apply();

    // Görüntüyü kaydet
    image.save(outputFilePath);
}

select(RasterImage source, MagicWandSettings settings)

public static ImageBitMask select(RasterImage source, MagicWandSettings settings)

Yeni bir ImageBitMask oluşturur; MagicWandSettings ve kaynak RasterImage temel alınarak.

Parameters:

ParametreTürAçıklama
sourceRasterImageAlgoritmanın çalışacağı raster görüntü.
settingsMagicWandSettingsMaskeyi oluşturmak için kullanılan magic wand algoritması ayarları.

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)

Yüklenen pikselleri işler.

Parameters:

ParametreTürAçıklama
pixelsRectangleRectanglePiksel dikdörtgeni.
piksellerint[]32-bit ARGB pikselleri.
startPointBaşlangıç piksel noktası. (sol,üst) ile eşit değilse, tam bir dikdörtgen olmadığını gösterir.
endPointBitiş piksel noktası. (sağ,alt) ile eşit değilse, tam bir dikdörtgen olmadığını gösterir.