GetArgb32Pixel

RasterImage.GetArgb32Pixel method

الحصول على صورة ARGB بكسل 32 بت .

public int GetArgb32Pixel(int x, int y)
معامليكتبوصف
xInt32موقع البكسل x.
yInt32موقع البكسل ص.

قيمة الإرجاع

32 بت ARGB بكسل للموقع المحدد.

أمثلة

يقوم المثال التالي بتحميل صورة نقطية ويحصل على لون بكسل عشوائي يتم تمثيله كقيمة عدد صحيح 32 بت.

[C#]

using (Aspose.Imaging.Image image = Aspose.Imaging.Image.Load(@"c:\temp\sample.png"))
{
    Aspose.Imaging.RasterImage rasterImage = (Aspose.Imaging.RasterImage)image;

    // احصل على تمثيل صحيح للون البكسل العلوي الأيسر من الصورة.
    int color = rasterImage.GetArgb32Pixel(0, 0);

    // للحصول على قيم مكونات اللون الفردية ، قم بإزاحة قيمة اللون بعدد مطابق من البتات
    int alpha = (color >> 24) & 0xff;
    int red = (color >> 16) & 0xff;
    int green = (color >> 8) & 0xff;
    int blue = (color >> 0) & 0xff;

    System.Console.WriteLine("The color of the pixel(0,0) is A={0},R={1},G={2},B={3}", alpha, red, green, blue);
}

يوضح المثال التالي كيف يؤثر التخزين المؤقت للصور على الأداء. بشكل عام ، يتم تنفيذ قراءة البيانات المخزنة مؤقتًا بشكل أسرع من قراءة البيانات غير المخزنة مؤقتًا.

[C#]

string dir = "c:\\temp\\";

// تحميل صورة من ملف PNG.
using (Aspose.Imaging.Image image = Aspose.Imaging.Image.Load(dir + "sample.png"))
{
    // تخزين جميع بيانات البكسل مؤقتًا بحيث لا يتم إجراء تحميل بيانات إضافي من دفق البيانات الأساسي
    image.CacheData();

    System.Diagnostics.Stopwatch stopwatch = new System.Diagnostics.Stopwatch();
    stopwatch.Start();

    // قراءة جميع وحدات البكسل سريعة جدًا.
    Aspose.Imaging.RasterImage rasterImage = (Aspose.Imaging.RasterImage)image;
    for (int y = 0; y < image.Height; y++)
    {
        for (int x = 0; x < image.Width; x++)
        {
            int color = rasterImage.GetArgb32Pixel(x, y);
        }
    }

    stopwatch.Stop();
    System.Console.WriteLine("Reading all cached pixels took {0} ms.", stopwatch.ElapsedMilliseconds);
}

// تحميل صورة من ملف PNG
using (Aspose.Imaging.Image image = Aspose.Imaging.Image.Load(dir + "sample.png"))
{
    System.Diagnostics.Stopwatch stopwatch = new System.Diagnostics.Stopwatch();
    stopwatch.Start();

    // قراءة جميع وحدات البكسل ليست بالسرعة التي يتم بها التخزين المؤقت
    Aspose.Imaging.RasterImage rasterImage = (Aspose.Imaging.RasterImage)image;
    for (int y = 0; y < image.Height; y++)
    {
        for (int x = 0; x < image.Width; x++)
        {
            int color = rasterImage.GetArgb32Pixel(x, y);
        }
    }

    stopwatch.Stop();
    System.Console.WriteLine("Reading all pixels without preliminary caching took {0} ms.", stopwatch.ElapsedMilliseconds);
}

// قد يبدو الإخراج كالتالي:
// استغرقت قراءة جميع وحدات البكسل المخزنة مؤقتًا 1500 مللي ثانية.
// استغرقت قراءة جميع وحدات البكسل بدون التخزين المؤقت الأولي 150000 مللي ثانية.

أنظر أيضا