LoadPartialArgb32Pixels

RasterImage.LoadPartialArgb32Pixels method

تحميل 32 بت ARGB بكسل جزئيًا بواسطة الحزم.

public void LoadPartialArgb32Pixels(Rectangle rectangle, 
    IPartialArgb32PixelLoader partialPixelLoader)
معامليكتبوصف
rectangleRectangleالمستطيل المطلوب.
partialPixelLoaderIPartialArgb32PixelLoaderمحمل البكسل ARGB 32 بت.

أمثلة

يوضح المثال التالي كيفية تحميل ومعالجة وحدات البكسل لصورة نقطية باستخدام المعالج الجزئي الخاص بك. على سبيل المثال ، ضع في اعتبارك مشكلة حساب وحدات البكسل الشفافة تمامًا للصورة. من أجل حساب وحدات البكسل الشفافة باستخدام آلية التحميل الجزئي ، تم تقديم فئة منفصلة TransparentArgb32PixelCounter تنفذ Aspose.Imaging.IPartialArgb32PixelLoader.

[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 وقم بتمريره إلى Aspose.Imaging.RasterImage.LoadPartialArgb32Pixels
    TransparentArgb32PixelCounter counter = new TransparentArgb32PixelCounter();

    // تحميل بكسل للصورة بأكملها. يمكن تحديد أي جزء مستطيل من الصورة كمعامل أول لطريقة Aspose.Imaging.RasterImage.LoadPartialArgb32Pixels.
    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);
}

// قد يبدو العداد كالتالي:        
/// <summary>
/// تحسب عدد وحدات البكسل الشفافة بالكامل بقيمة قناة ألفا تساوي 0.
/// </summary>
private class TransparentArgb32PixelCounter : IPartialArgb32PixelLoader
{
    /// <summary>
    /// عدد وحدات البكسل الشفافة بالكامل.
    /// </summary>
    private int count;

    /// <summary>
    /// يحصل على عدد وحدات البكسل الشفافة بالكامل.
    /// </summary>
    public int Count
    {
        get { return this.count; }
    }

    /// <summary>
    /// يعالج وحدات البكسل المحملة. يتم استدعاء هذه الطريقة مرة أخرى في كل مرة يتم فيها تحميل جزء جديد من وحدات البكسل.
    /// </summary>
    /// < param name = "pixelsRectangle" > مستطيل البكسل. < / param >
    /// < param name = "pixels" > وحدات البكسل ARGB 32 بت. < / param >
    /// < param name = "start" > نقطة بكسل البداية. < / param >
    /// < param name = "end" > نقطة نهاية البكسل. < / 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++;
            }
        }
    }
}

أنظر أيضا