GetArgb32Pixel

RasterImage.GetArgb32Pixel method

Obtiene una imagen ARGB pixel de 32 bits.

public int GetArgb32Pixel(int x, int y)
ParámetroEscribeDescripción
xInt32La ubicación del píxel x.
yInt32La ubicación del píxel y.

Valor_devuelto

El píxel ARGB de 32 bits para la ubicación especificada.

Ejemplos

El siguiente ejemplo carga una imagen ráster y obtiene el color de un píxel arbitrario representado como un valor entero de 32 bits.

[C#]

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

    // Obtenga una representación entera del color del píxel superior izquierdo de la imagen.
    int color = rasterImage.GetArgb32Pixel(0, 0);

    // Para obtener los valores de los componentes de color individuales, cambie el valor del color por un número correspondiente 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);
}

El siguiente ejemplo muestra cómo el almacenamiento en caché de imágenes afecta el rendimiento. En el caso general, la lectura de datos almacenados en caché se realiza más rápido que la lectura de datos no almacenados en caché.

[C#]

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

// Carga una imagen desde un archivo PNG.
using (Aspose.Imaging.Image image = Aspose.Imaging.Image.Load(dir + "sample.png"))
{
    // Almacenar en caché todos los datos de píxeles para que no se realice ninguna carga de datos adicional desde el flujo de datos subyacente
    image.CacheData();

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

    // Leer todos los píxeles es bastante rápido.
    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);
}

// Cargar una imagen desde un archivo PNG
using (Aspose.Imaging.Image image = Aspose.Imaging.Image.Load(dir + "sample.png"))
{
    System.Diagnostics.Stopwatch stopwatch = new System.Diagnostics.Stopwatch();
    stopwatch.Start();

    // Leer todos los píxeles no es tan rápido como cuando se almacena en caché
    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 salida puede verse así:
// La lectura de todos los píxeles almacenados en caché tomó 1500 ms.
// La lectura de todos los píxeles sin almacenamiento en caché preliminar tomó 150000 ms.

Ver también