MaskingArea

MaskingOptions.MaskingArea property

Hämtar eller ställer in maskeringsområdet.

public Rectangle MaskingArea { get; set; }

Fastighetsvärde

Maskeringsområdet som är ett delområde av källbilden. Rectangle.Empty värde betyder fullständigt källbildsområde.

Exempel

Det här exemplet visar hur man delar upp en rasterbild till flera bilder med hjälp av bildmaskering och en manuell mask. Bildmaskering är en bildbehandlingsteknik som används för att dela upp bakgrunden från förgrundsbildobjekten.

[C#]

string dir = "c:\\temp\\";

// Definiera en manuell mask.
Aspose.Imaging.GraphicsPath manualMask = new Aspose.Imaging.GraphicsPath();
Aspose.Imaging.Figure figure = new Aspose.Imaging.Figure();
figure.AddShape(new Aspose.Imaging.Shapes.EllipseShape(new RectangleF(50, 50, 40, 40)));
figure.AddShape(new Aspose.Imaging.Shapes.RectangleShape(new RectangleF(10, 20, 50, 30)));
manualMask.AddFigure(figure);

// Varje kluster (segment) kommer att lagras i en separat PNG-fil.
Aspose.Imaging.ImageOptions.PngOptions exportOptions = new Aspose.Imaging.ImageOptions.PngOptions();
exportOptions.ColorType = Aspose.Imaging.FileFormats.Png.PngColorType.TruecolorWithAlpha;
exportOptions.Source = new Aspose.Imaging.Sources.StreamSource(new System.IO.MemoryStream());

// Ställ in den manuella masken.
Aspose.Imaging.Masking.Options.ManualMaskingArgs args = new Aspose.Imaging.Masking.Options.ManualMaskingArgs();
args.Mask = manualMask;

using (RasterImage image = (RasterImage)Image.Load(dir + "Blue hills.png"))
{
    Aspose.Imaging.Masking.Options.MaskingOptions maskingOptions = new Aspose.Imaging.Masking.Options.MaskingOptions();

    // Använd manuell klustringsalgoritm.
    maskingOptions.Method = Masking.Options.SegmentationMethod.Manual;

    // Alla former som utgör en mask kommer att kombineras till en. 
    maskingOptions.Decompose = false;
    maskingOptions.Args = args;

    // Bakgrundsfärgen kommer att vara orange.
    maskingOptions.BackgroundReplacementColor = Aspose.Imaging.Color.Orange;
    maskingOptions.ExportOptions = exportOptions;

    // Området av källbilden som maskeringen kommer att tillämpas på.
    maskingOptions.MaskingArea = new Rectangle(50, 50, 120, 120);

    // Skapa en instans av klassen ImageMasking.
    Aspose.Imaging.Masking.ImageMasking masking = new Aspose.Imaging.Masking.ImageMasking(image);

    // Dela upp källbilden i flera kluster (segment).
    using (Aspose.Imaging.Masking.Result.MaskingResult maskingResult = masking.Decompose(maskingOptions))
    {
        // Skaffa bilder från maskeringsresultat och spara dem i PNG.
        for (int i = 0; i < maskingResult.Length; i++)
        {
            string outputFileName = string.Format("Blue hills.Segment{0}.png", maskingResult[i].ObjectNumber);
            using (Aspose.Imaging.Image resultImage = maskingResult[i].GetImage())
            {
                resultImage.Save(dir + outputFileName);
            }
        }
    }
}

Se även