本人C#学渣,现有一函数将图片某圆外像素点置白,函数如下。。。。 public Bitmap ReadColor(Bitmap b,float x0,float y0,double r)
{
BitmapData bData = b.LockBits(new Rectangle(0, 0, b.Width, b.Height), ImageLockMode.ReadWrite, PixelFormat.Format24bppRgb);
unsafe
{
byte* ptr = (byte*)(bData.Scan0);
for (int y =0;y< bData.Height; y++)
{
for (int x = 0; x < bData.Width; x++)
{
double r2 =(x - x0) * (x - x0) + (y - y0) * (y - y0);
if (r2 > r * r)
{
*ptr = 255;
*(ptr + 1) = 255;
*(ptr + 2) = 255;
}
ptr += 3;
}
ptr += bData.Stride - bData.Width * 3;
}
}
b.UnlockBits(bData);
return b;
}
若r2>r*r,则显示一片白。。。居然是一片白!!!伤心啊!!!
若r2<r*r,则如图。。。。。
求大神,求高手啊!!!
|