LoadPartialArgb32Pixels
RasterImage.LoadPartialArgb32Pixels method
تحميل 32 بت ARGB بكسل جزئيًا بواسطة الحزم.
public void LoadPartialArgb32Pixels(Rectangle rectangle,
IPartialArgb32PixelLoader partialPixelLoader)
معامل | يكتب | وصف |
---|---|---|
rectangle | Rectangle | المستطيل المطلوب. |
partialPixelLoader | IPartialArgb32PixelLoader | محمل البكسل 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++;
}
}
}
}
أنظر أيضا
- struct Rectangle
- interface IPartialArgb32PixelLoader
- class RasterImage
- مساحة الاسم Aspose.Imaging
- المجسم Aspose.Imaging