LoadPartialPixels
RasterImage.LoadPartialPixels method
Charge les pixels partiellement par packs.
public void LoadPartialPixels(Rectangle desiredRectangle, IPartialPixelLoader pixelLoader)
Paramètre | Taper | La description |
---|---|---|
desiredRectangle | Rectangle | Le rectangle souhaité. |
pixelLoader | IPartialPixelLoader | Le 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
- struct Rectangle
- interface IPartialPixelLoader
- class RasterImage
- espace de noms Aspose.Imaging
- Assemblée Aspose.Imaging