无法使用Xamarin从位图读取像素

本文关键字:位图 读取 像素 Xamarin | 更新日期: 2023-09-27 18:03:28

我认为获取像素数据是一件简单的事情,但它已经成为一个大麻烦。

我最初的目标是遍历位图中的每个像素,然后对数据进行一些修改。然而,每次我试图获得像素时,结果都是0。感觉图像并没有进入位图。是我在代码中遗漏了什么,还是代码总体上是错误的?

protected override void OnCreate(Bundle bundle)
{
    base.OnCreate(bundle);

        SetContentView(Resource.Layout.Main);
        var imageView1 = FindViewById<ImageView>(Resource.Id.imageView1);
        imageView1.SetImageResource(Resource.Drawable.pic1);
        Bitmap b = BitmapFactory.DecodeResource(Resources,Resource.Drawable.pic1);
        b = Bitmap.CreateBitmap(b);
        imageView1.SetImageBitmap(b);
        for (int i = 0; i < width; i++)
        {
            for (int j = 0; j < height; j++)
            {
                int pixel = b.GetPixel(i, j);
                int A = Color.GetAlphaComponent(pixel);
                int R = Color.GetRedComponent(pixel);
                int G = Color.GetGreenComponent(pixel);
                int B = Color.GetBlueComponent(pixel);
            }
        }
    }

无法使用Xamarin从位图读取像素

需要使用

Bitmap b = BitmapFactory.DecodeResource(Resources,Resource.Drawable.pic1);
    for (int i = 0; i < width; i++)
    {
        for (int j = 0; j < height; j++)
        {
            Color pixel = new Color(b.GetPixel(i, j));
            int A = Color.GetAlphaComponent(pixel);
            int R = Color.GetRedComponent(pixel);
            int G = Color.GetGreenComponent(pixel);
            int B = Color.GetBlueComponent(pixel);
        }
    }