GetArgb32Pixel

RasterImage.GetArgb32Pixel method

Obtient une image pixel ARGB 32 bits.

public int GetArgb32Pixel(int x, int y)
ParamètreTaperLa description
xInt32L’emplacement pixel x.
yInt32L’emplacement du pixel y.

Return_Value

Le pixel ARGB 32 bits pour l’emplacement spécifié.

Exemples

L’exemple suivant charge une image raster et obtient la couleur d’un pixel arbitraire représenté sous la forme d’une valeur entière 32 bits.

[C#]

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

    // Obtient une représentation entière de la couleur du pixel supérieur gauche de l'image.
    int color = rasterImage.GetArgb32Pixel(0, 0);

    // Pour obtenir les valeurs des composants de couleur individuels, décaler la valeur de couleur d'un nombre correspondant de bits
    int alpha = (color >> 24) & 0xff;
    int red = (color >> 16) & 0xff;
    int green = (color >> 8) & 0xff;
    int blue = (color >> 0) & 0xff;

    System.Console.WriteLine("The color of the pixel(0,0) is A={0},R={1},G={2},B={3}", alpha, red, green, blue);
}

L’exemple suivant montre comment la mise en cache des images affecte les performances. Dans le cas général, la lecture des données mises en cache est effectuée plus rapidement que la lecture des données non mises en cache.

[C#]

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

// Charge une image à partir d'un fichier PNG.
using (Aspose.Imaging.Image image = Aspose.Imaging.Image.Load(dir + "sample.png"))
{
    // Mettez en cache toutes les données de pixel afin qu'aucun chargement de données supplémentaire ne soit effectué à partir du flux de données sous-jacent
    image.CacheData();

    System.Diagnostics.Stopwatch stopwatch = new System.Diagnostics.Stopwatch();
    stopwatch.Start();

    // La lecture de tous les pixels est assez rapide.
    Aspose.Imaging.RasterImage rasterImage = (Aspose.Imaging.RasterImage)image;
    for (int y = 0; y < image.Height; y++)
    {
        for (int x = 0; x < image.Width; x++)
        {
            int color = rasterImage.GetArgb32Pixel(x, y);
        }
    }

    stopwatch.Stop();
    System.Console.WriteLine("Reading all cached pixels took {0} ms.", stopwatch.ElapsedMilliseconds);
}

// Charger une image depuis un fichier PNG
using (Aspose.Imaging.Image image = Aspose.Imaging.Image.Load(dir + "sample.png"))
{
    System.Diagnostics.Stopwatch stopwatch = new System.Diagnostics.Stopwatch();
    stopwatch.Start();

    // La lecture de tous les pixels n'est pas aussi rapide que lors de la mise en cache
    Aspose.Imaging.RasterImage rasterImage = (Aspose.Imaging.RasterImage)image;
    for (int y = 0; y < image.Height; y++)
    {
        for (int x = 0; x < image.Width; x++)
        {
            int color = rasterImage.GetArgb32Pixel(x, y);
        }
    }

    stopwatch.Stop();
    System.Console.WriteLine("Reading all pixels without preliminary caching took {0} ms.", stopwatch.ElapsedMilliseconds);
}

// La sortie peut ressembler à ceci :
// La lecture de tous les pixels mis en cache a pris 1 500 ms.
// La lecture de tous les pixels sans mise en cache préalable a pris 150 000 ms.

Voir également