GetArgb32Pixel
RasterImage.GetArgb32Pixel method
Ruft ein 32-Bit-ARGB-Pixelbild ab.
public int GetArgb32Pixel(int x, int y)
Parameter | Typ | Beschreibung |
---|---|---|
x | Int32 | Die Pixel-x-Position. |
y | Int32 | Die Pixel-y-Position. |
Rückgabewert
Das 32-Bit-ARGB-Pixel für die angegebene Position.
Beispiele
Das folgende Beispiel lädt ein Rasterbild und ruft die Farbe eines beliebigen Pixels ab, das als 32-Bit-Ganzzahlwert dargestellt wird.
[C#]
using (Aspose.Imaging.Image image = Aspose.Imaging.Image.Load(@"c:\temp\sample.png"))
{
Aspose.Imaging.RasterImage rasterImage = (Aspose.Imaging.RasterImage)image;
// Holen Sie sich eine ganzzahlige Darstellung der Farbe des oberen linken Pixels des Bildes.
int color = rasterImage.GetArgb32Pixel(0, 0);
// Um die Werte der einzelnen Farbkomponenten zu erhalten, verschieben Sie den Farbwert um eine entsprechende Anzahl von 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);
}
Das folgende Beispiel zeigt, wie sich das Zwischenspeichern von Bildern auf die Leistung auswirkt. Im Allgemeinen erfolgt das Lesen von zwischengespeicherten Daten schneller als das Lesen von nicht zwischengespeicherten Daten.
[C#]
string dir = "c:\\temp\\";
// Laden Sie ein Bild aus einer PNG-Datei.
using (Aspose.Imaging.Image image = Aspose.Imaging.Image.Load(dir + "sample.png"))
{
// Alle Pixeldaten zwischenspeichern, sodass kein zusätzliches Laden von Daten aus dem zugrunde liegenden Datenstrom durchgeführt wird
image.CacheData();
System.Diagnostics.Stopwatch stopwatch = new System.Diagnostics.Stopwatch();
stopwatch.Start();
// Das Lesen aller Pixel ist ziemlich schnell.
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);
}
// Laden Sie ein Bild aus einer PNG-Datei
using (Aspose.Imaging.Image image = Aspose.Imaging.Image.Load(dir + "sample.png"))
{
System.Diagnostics.Stopwatch stopwatch = new System.Diagnostics.Stopwatch();
stopwatch.Start();
// Das Lesen aller Pixel ist nicht so schnell wie beim Caching
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);
}
// Die Ausgabe könnte so aussehen:
// Das Lesen aller gecachten Pixel hat 1500 ms gedauert.
// Das Lesen aller Pixel ohne vorheriges Caching dauerte 150000 ms.
Siehe auch
- class RasterImage
- namensraum Aspose.Imaging
- Montage Aspose.Imaging