Decompose

MaskingOptions.Decompose property

Her bir Şekli maskeden ayrı nesne olarak mı yoksa arka plandan ayrılmış maskeden birleşik nesne olarak mı ayırmanın gereksiz olduğunu belirten bir değer alır veya ayarlar.

public bool Decompose { get; set; }

Mülk değeri

doğruayrıştırılırsa; aksi halde,yanlış .

Örnekler

Bu örnek, görüntü maskeleme ve manuel maske kullanarak bir raster görüntünün birden çok görüntüye nasıl ayrıştırılacağını gösterir. Görüntü maskeleme, arka planı ön plan görüntü nesnelerinden ayırmak için kullanılan bir görüntü işleme tekniğidir.

[C#]

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

// Manuel bir maske tanımlayın.
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);

// Her küme (segment) ayrı bir PNG dosyasına kaydedilecektir.
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());

// Manuel maskeyi ayarlayın.
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();

    // Manuel kümeleme algoritmasını kullanın.
    maskingOptions.Method = Masking.Options.SegmentationMethod.Manual;

    // Bir maskeyi oluşturan tüm şekiller bir araya getirilecek. 
    maskingOptions.Decompose = false;
    maskingOptions.Args = args;

    // Arka plan rengi turuncu olacaktır.
    maskingOptions.BackgroundReplacementColor = Aspose.Imaging.Color.Orange;
    maskingOptions.ExportOptions = exportOptions;

    // Maskelemenin uygulanacağı kaynak görüntünün alanı.
    maskingOptions.MaskingArea = new Rectangle(50, 50, 120, 120);

    // ImageMasking sınıfının bir örneğini oluşturun.
    Aspose.Imaging.Masking.ImageMasking masking = new Aspose.Imaging.Masking.ImageMasking(image);

    // Kaynak görüntüyü birkaç kümeye (segmentlere) bölün.
    using (Aspose.Imaging.Masking.Result.MaskingResult maskingResult = masking.Decompose(maskingOptions))
    {
        // Maskeleme sonucundan görüntüler alın ve PNG'ye kaydedin.
        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);
            }
        }
    }
}

Ayrıca bakınız