无法使用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);
}
}
}
需要使用
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);
}
}