LoadPartialArgb32Pixels

RasterImage.LoadPartialArgb32Pixels method

Charge les pixels ARGB 32 bits partiellement par packs.

public void LoadPartialArgb32Pixels(Rectangle rectangle, 
    IPartialArgb32PixelLoader partialPixelLoader)
ParamètreTaperLa description
rectangleRectangleLe rectangle souhaité.
partialPixelLoaderIPartialArgb32PixelLoaderLe chargeur de pixels ARGB 32 bits.

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 les pixels transparents à l’aide du mécanisme de chargement partiel, une classe distincte TransparentArgb32PixelCounter implémentant Aspose.Imaging.IPartialArgb32PixelLoader 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éez une instance de Aspose.Imaging.IPartialArgb32PixelLoader et passez-la à Aspose.Imaging.RasterImage.LoadPartialArgb32Pixels
    TransparentArgb32PixelCounter counter = new TransparentArgb32PixelCounter();

    // 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.LoadPartialArgb32Pixels.
    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);
}

// 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 TransparentArgb32PixelCounter : IPartialArgb32PixelLoader
{
    /// <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, 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++;
            }
        }
    }
}

Voir également