LoadPartialArgb32Pixels

RasterImage.LoadPartialArgb32Pixels method

32 bit ARGB piksellerini kısmen paketler halinde yükler.

public void LoadPartialArgb32Pixels(Rectangle rectangle, 
    IPartialArgb32PixelLoader partialPixelLoader)
ParametreTipTanım
rectangleRectangleİstenilen dikdörtgen.
partialPixelLoaderIPartialArgb32PixelLoader32 bit ARGB piksel yükleyici.

Örnekler

Aşağıdaki örnek, kendi kısmi işlemcinizi kullanarak bir raster görüntünün piksellerini nasıl yükleyeceğinizi ve işleyeceğinizi gösterir. Örneğin, bir görüntünün tamamen saydam piksellerini sayma problemini ele alalım. Kısmi yükleme mekanizmasını kullanarak saydam pikselleri saymak için, Aspose.Imaging.IPartialArgb32PixelLoader uygulayan ayrı bir TransparentArgb32PixelCounter sınıfı tanıtıldı.

[C#]

using (Aspose.Imaging.Image image = Aspose.Imaging.Image.Load(@"c:\temp\alpha.png"))
{
    Aspose.Imaging.RasterImage rasterImage = (Aspose.Imaging.RasterImage)image;

    // Aspose.Imaging.IPartialArgb32PixelLoader'ın bir örneğini oluşturun ve bunu Aspose.Imaging.RasterImage.LoadPartialArgb32Pixels'e iletin
    TransparentArgb32PixelCounter counter = new TransparentArgb32PixelCounter();

    // Tüm görüntü için pikselleri yükleyin. Resmin herhangi bir dikdörtgen kısmı Aspose.Imaging.RasterImage.LoadPartialArgb32Pixels yönteminin ilk parametresi olarak belirtilebilir.
    rasterImage.LoadPartialArgb32Pixels(rasterImage.Bounds, counter);

    System.Console.WriteLine("The number of fully transparent pixels is {0}", counter.Count);
    System.Console.WriteLine("The total number of pixels is {0}", image.Width * image.Height);
}

// Sayaç şöyle görünebilir:        
/// <summary>
/// Alfa kanalı değeri 0 olan tamamen saydam piksellerin sayısını sayar.
/// </summary>
private class TransparentArgb32PixelCounter : IPartialArgb32PixelLoader
{
    /// <summary>
    /// Tamamen saydam piksellerin sayısı.
    /// </summary>
    private int count;

    /// <summary>
    /// Tamamen saydam piksellerin sayısını alır.
    /// </summary>
    public int Count
    {
        get { return this.count; }
    }

    /// <summary>
    /// Yüklenen pikselleri işler. Bu yöntem, yeni bir piksel bölümü yüklendiğinde her zaman geri çağrılır.
    /// </summary>
    /// <param name="pixelsRectangle">Piksel dikdörtgeni.</param>
    /// <param name="pikseller">32 bit ARGB pikselleri.</param>
    /// <param name="start">Başlangıç piksel noktası.</param>
    /// <param name="end">Bitiş piksel noktası.</param>
    public void Process(Aspose.Imaging.Rectangle pixelsRectangle, int[] pixels, Aspose.Imaging.Point start, Aspose.Imaging.Point end)
    {
        foreach (int pixel in pixels)
        {
            int alpha = (pixel >> 24) & 0xff;
            if (alpha == 0)
            {
                this.count++;
            }
        }
    }
}

Ayrıca bakınız