LoadPartialPixels
RasterImage.LoadPartialPixels method
Laddar pixlar delvis i paket.
public void LoadPartialPixels(Rectangle desiredRectangle, IPartialPixelLoader pixelLoader)
Parameter | Typ | Beskrivning |
---|---|---|
desiredRectangle | Rectangle | Den önskade rektangeln. |
pixelLoader | IPartialPixelLoader | Pixelladdaren. |
Exempel
Följande exempel visar hur du laddar och bearbetar pixlar i en rasterbild med din egen partiella processor. Tänk till exempel på ett problem med räkning av helt genomskinliga pixlar i en bild. För att räkna transparent med hjälp av partiell laddningsmekanism, introduceras en separat klass TransparentPixelCounter som implementerar Aspose.Imaging.IPartialPixelLoader.
[C#]
using (Aspose.Imaging.Image image = Aspose.Imaging.Image.Load(@"c:\temp\alpha.png"))
{
Aspose.Imaging.RasterImage rasterImage = (Aspose.Imaging.RasterImage)image;
// Skapa en instans av Aspose.Imaging.IPartialPixelLoader och skicka den till Aspose.Imaging.RasterImage.LoadPartialPixels
TransparentPixelCounter counter = new TransparentPixelCounter();
// Ladda pixlar för hela bilden. Vilken rektangulär del av bilden som helst kan anges som den första parametern i metoden 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);
}
// Räknaren kan se ut så här:
/// <summary>
/// Räknar antalet helt genomskinliga pixlar med alfakanalvärdet 0.
/// </summary>
private class TransparentPixelCounter : IPartialPixelLoader
{
/// <summary>
/// Antalet helt genomskinliga pixlar.
/// </summary>
private int count;
/// <summary>
/// Får antalet helt genomskinliga pixlar.
/// </summary>
public int Count
{
get { return this.count; }
}
/// <summary>
/// Bearbetar de laddade pixlarna. Denna metod anropas varje gång när en ny del av pixlar laddas.
/// </summary>
/// <param name="pixelsRectangle">Pixelrektangeln.</param>
/// <param name="pixlar">32-bitars ARGB-pixlar.</param>
/// <param name="start">Startpixelpunkten.</param>
/// <param name="end">Slutpunkten för pixlar.</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++;
}
}
}
}
Se även
- struct Rectangle
- interface IPartialPixelLoader
- class RasterImage
- namnutrymme Aspose.Imaging
- hopsättning Aspose.Imaging