MagicWandTool

Inheritance: java.lang.Object

All Implemented Interfaces: com.aspose.imaging.IPartialArgb32PixelLoader

public class MagicWandTool implements IPartialArgb32PixelLoader

الفئة الخاصة بالمنطق الرئيسي لخوارزمية magic wand.

الطرق

طريقةالوصف
select(RasterImage source, MagicWandSettings settings)ينشئ نسخة جديدة من ImageBitMask بناءً على MagicWandSettings وصورة المصدر RasterImage.
process(Rectangle pixelsRectangle, int[] pixels, Point start, Point end)يعالج البكسلات المحمّلة.

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))
{
    // أنشئ قناعًا جديدًا باستخدام أداة العصا السحرية بناءً على درجة اللون ولون البكسل (120, 100) مع عتبة مخصصة مساوية لـ 150
    MagicWandTool
            .select(image, new MagicWandSettings(120, 100) {{ setThreshold(150); }})
            // تطبيق القناع على الصورة
            .apply();

    // احفظ الصورة مع خيار فرض نوع لون الشفافية
    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)
    MagicWandTool.select(image, new MagicWandSettings(845, 128))
            // ادمج القناع الحالي مع القناع المحدد الذي تم إنشاؤه بواسطة أداة العصا السحرية
            .union(new MagicWandSettings(416, 387))
            // عكس القناع الحالي
            .invert()
            // اطرح القناع المحدد الذي تم إنشاؤه بأداة العصا السحرية مع العتبة المحددة من القناع الحالي
            .subtract(new MagicWandSettings(1482, 346) {{ setThreshold(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() {{ setSize(3); }})
            // تطبيق القناع على الصورة
            .apply();

    // حفظ الصورة
    image.save(outputFilePath);
}

select(RasterImage source, MagicWandSettings settings)

public static ImageBitMask select(RasterImage source, MagicWandSettings settings)

ينشئ نسخة جديدة من ImageBitMask بناءً على MagicWandSettings وصورة المصدر RasterImage.

Parameters:

معاملنوعالوصف
sourceRasterImageصورة نقطية لتعمل الخوارزمية عليها.
settingsMagicWandSettingsإعدادات خوارزمية العصا السحرية المستخدمة في إنشاء القناع.

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)

يعالج البكسلات المحمّلة.

Parameters:

معاملنوعالوصف
pixelsRectangleRectangleمستطيل البكسلات.
بكسلاتint[]بكسلات ARGB 32-بت.
startPointنقطة بكسلات البداية. إذا لم تكن مساوية لـ (left,top) فهذا يعني أنها ليست مستطيلًا كاملًا لدينا.
endPointنقطة بكسلات النهاية. إذا لم تكن مساوية لـ (right,bottom) فهذا يعني أنها ليست مستطيلًا كاملًا لدينا.