GetArgb32Pixel

RasterImage.GetArgb32Pixel method

Ottiene un’immagine ARGB pixel a 32 bit.

public int GetArgb32Pixel(int x, int y)
ParametroTipoDescrizione
xInt32La posizione del pixel x.
yInt32La posizione del pixel y.

Valore di ritorno

Il pixel ARGB a 32 bit per la posizione specificata.

Esempi

L’esempio seguente carica un’immagine raster e ottiene il colore di un pixel arbitrario rappresentato come un valore intero a 32 bit.

[C#]

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

    // Ottieni una rappresentazione intera del colore del pixel in alto a sinistra dell'immagine.
    int color = rasterImage.GetArgb32Pixel(0, 0);

    // Per ottenere i valori delle singole componenti del colore, spostare il valore del colore di un numero corrispondente di bit
    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’esempio seguente mostra come la memorizzazione nella cache dell’immagine influisce sulle prestazioni. In generale, la lettura dei dati memorizzati nella cache viene eseguita più velocemente rispetto alla lettura dei dati non memorizzati nella cache.

[C#]

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

// Carica un'immagine da un file PNG.
using (Aspose.Imaging.Image image = Aspose.Imaging.Image.Load(dir + "sample.png"))
{
    // Memorizza nella cache tutti i dati dei pixel in modo che non venga eseguito alcun caricamento di dati aggiuntivo dal flusso di dati sottostante
    image.CacheData();

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

    // La lettura di tutti i pixel è piuttosto veloce.
    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);
}

// Carica un'immagine da un file PNG
using (Aspose.Imaging.Image image = Aspose.Imaging.Image.Load(dir + "sample.png"))
{
    System.Diagnostics.Stopwatch stopwatch = new System.Diagnostics.Stopwatch();
    stopwatch.Start();

    // La lettura di tutti i pixel non è veloce come durante la memorizzazione nella 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);
}

// L'output potrebbe essere simile a questo:
// La lettura di tutti i pixel nella cache ha richiesto 1500 ms.
// La lettura di tutti i pixel senza cache preliminare ha richiesto 150000 ms.

Guarda anche