LoadPartialPixels

RasterImage.LoadPartialPixels method

Charge les pixels partiellement par packs.

public void LoadPartialPixels(Rectangle desiredRectangle, IPartialPixelLoader pixelLoader)
ParamètreTaperLa description
desiredRectangleRectangleLe rectangle souhaité.
pixelLoaderIPartialPixelLoaderLe chargeur de pixels.

Exemples

L’exemple suivant montre comment charger et traiter les pixels d’une image raster à l’aide de votre propre processeur partiel. Par exemple, considérons un problème de comptage de pixels entièrement transparents d’une image. Afin de compter la transparence à l’aide du mécanisme de chargement partiel, une classe distincte TransparentPixelCounter implémentant Aspose.Imaging.IPartialPixelLoader est introduite.

[C#]

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

    // Crée une instance de Aspose.Imaging.IPartialPixelLoader et la transmet à Aspose.Imaging.RasterImage.LoadPartialPixels
    TransparentPixelCounter counter = new TransparentPixelCounter();

    // Charge les pixels pour toute l'image. Toute partie rectangulaire de l'image peut être spécifiée comme premier paramètre de la méthode Aspose.Imaging.RasterImage.LoadPartialPixels.
    rasterImage.LoadPartialPixels(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);
}

// Le compteur peut ressembler à ceci :
/// <summary>
/// Compte le nombre de pixels entièrement transparents avec une valeur de canal alpha de 0.
/// </summary>
private class TransparentPixelCounter : IPartialPixelLoader
{
    /// <summary>
    /// Le nombre de pixels entièrement transparents.
    /// </summary>
    private int count;

    /// <summary>
    /// Obtient le nombre de pixels entièrement transparents.
    /// </summary>
    public int Count
    {
        get { return this.count; }
    }

    /// <summary>
    /// Traite les pixels chargés. Cette méthode est rappelée à chaque fois qu'une nouvelle portion de pixels est chargée.
    /// </summary>
    /// <param name="pixelsRectangle">Le rectangle de pixels.</param>
    /// <param name="pixels">Les pixels ARGB 32 bits.</param>
    /// <param name="start">Le point de départ des pixels.</param>
    /// <param name="end">Le point des pixels de fin.</param>
    public void Process(Aspose.Imaging.Rectangle pixelsRectangle, Aspose.Imaging.Color[] pixels, Aspose.Imaging.Point start, Aspose.Imaging.Point end)
    {
        foreach (Color pixel in pixels)
        {
            if (pixel.A == 0)
            {
                this.count++;
            }
        }
    }
}

Voir également