LoadPartialArgb32Pixels
RasterImage.LoadPartialArgb32Pixels method
32 bit ARGB piksellerini kısmen paketler halinde yükler.
public void LoadPartialArgb32Pixels(Rectangle rectangle,
IPartialArgb32PixelLoader partialPixelLoader)
Parametre | Tip | Tanım |
---|---|---|
rectangle | Rectangle | İstenilen dikdörtgen. |
partialPixelLoader | IPartialArgb32PixelLoader | 32 bit ARGB piksel yükleyici. |
Örnekler
Aşağıdaki örnek, kendi kısmi işlemcinizi kullanarak bir raster görüntünün piksellerini nasıl yükleyeceğinizi ve işleyeceğinizi gösterir. Örneğin, bir görüntünün tamamen saydam piksellerini sayma problemini ele alalım. Kısmi yükleme mekanizmasını kullanarak saydam pikselleri saymak için, Aspose.Imaging.IPartialArgb32PixelLoader uygulayan ayrı bir TransparentArgb32PixelCounter sınıfı tanıtıldı.
[C#]
using (Aspose.Imaging.Image image = Aspose.Imaging.Image.Load(@"c:\temp\alpha.png"))
{
Aspose.Imaging.RasterImage rasterImage = (Aspose.Imaging.RasterImage)image;
// Aspose.Imaging.IPartialArgb32PixelLoader'ın bir örneğini oluşturun ve bunu Aspose.Imaging.RasterImage.LoadPartialArgb32Pixels'e iletin
TransparentArgb32PixelCounter counter = new TransparentArgb32PixelCounter();
// Tüm görüntü için pikselleri yükleyin. Resmin herhangi bir dikdörtgen kısmı Aspose.Imaging.RasterImage.LoadPartialArgb32Pixels yönteminin ilk parametresi olarak belirtilebilir.
rasterImage.LoadPartialArgb32Pixels(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);
}
// Sayaç şöyle görünebilir:
/// <summary>
/// Alfa kanalı değeri 0 olan tamamen saydam piksellerin sayısını sayar.
/// </summary>
private class TransparentArgb32PixelCounter : IPartialArgb32PixelLoader
{
/// <summary>
/// Tamamen saydam piksellerin sayısı.
/// </summary>
private int count;
/// <summary>
/// Tamamen saydam piksellerin sayısını alır.
/// </summary>
public int Count
{
get { return this.count; }
}
/// <summary>
/// Yüklenen pikselleri işler. Bu yöntem, yeni bir piksel bölümü yüklendiğinde her zaman geri çağrılır.
/// </summary>
/// <param name="pixelsRectangle">Piksel dikdörtgeni.</param>
/// <param name="pikseller">32 bit ARGB pikselleri.</param>
/// <param name="start">Başlangıç piksel noktası.</param>
/// <param name="end">Bitiş piksel noktası.</param>
public void Process(Aspose.Imaging.Rectangle pixelsRectangle, int[] pixels, Aspose.Imaging.Point start, Aspose.Imaging.Point end)
{
foreach (int pixel in pixels)
{
int alpha = (pixel >> 24) & 0xff;
if (alpha == 0)
{
this.count++;
}
}
}
}
Ayrıca bakınız
- struct Rectangle
- interface IPartialArgb32PixelLoader
- class RasterImage
- ad alanı Aspose.Imaging
- toplantı Aspose.Imaging