LoadPartialPixels
RasterImage.LoadPartialPixels method
يتم تحميل وحدات البكسل جزئيًا بالحزم .
public void LoadPartialPixels(Rectangle desiredRectangle, IPartialPixelLoader pixelLoader)
معامل | يكتب | وصف |
---|---|---|
desiredRectangle | Rectangle | المستطيل المطلوب. |
pixelLoader | IPartialPixelLoader | محمل البكسل. |
أمثلة
يوضح المثال التالي كيفية تحميل ومعالجة وحدات البكسل لصورة نقطية باستخدام المعالج الجزئي الخاص بك. على سبيل المثال ، ضع في اعتبارك مشكلة حساب وحدات البكسل الشفافة تمامًا للصورة. من أجل حساب الشفافية باستخدام آلية التحميل الجزئي ، تم تقديم فئة منفصلة TransparentPixelCounter تنفذ 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;
// قم بإنشاء مثيل لـ Aspose.Imaging.IPartialPixelLoader وقم بتمريره إلى Aspose.Imaging.RasterImage.LoadPartialPixels
TransparentPixelCounter counter = new TransparentPixelCounter();
// تحميل بكسل للصورة بأكملها. يمكن تحديد أي جزء مستطيل من الصورة كمعامل أول لطريقة 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);
}
// قد يبدو العداد كالتالي:
/// <summary>
/// تحسب عدد وحدات البكسل الشفافة بالكامل بقيمة قناة ألفا تساوي 0.
/// </summary>
private class TransparentPixelCounter : IPartialPixelLoader
{
/// <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, Aspose.Imaging.Color[] pixels, Aspose.Imaging.Point start, Aspose.Imaging.Point end)
{
foreach (Color pixel in pixels)
{
if (pixel.A == 0)
{
this.count++;
}
}
}
}
أنظر أيضا
- struct Rectangle
- interface IPartialPixelLoader
- class RasterImage
- مساحة الاسم Aspose.Imaging
- المجسم Aspose.Imaging