unsafe
{
Pixel* p = (Pixel*)bData.Scan0 + i * bmp.Height;
p->R = (byte)((int)p->R * 0.3);
p->G = (byte)((int)p->G * 0.59);
p->B = (byte)((int)p->G * 0.11);
}
Pixel里面是这个样子
public struct Pixel
{
public byte R;
public byte G;
public byte B;
}
内存中图片的颜色并没有改变。。。不是这样赋值的吗?
Pixel
这里的定义有问题 像素在内存存储是B
G
R
这样的顺序 你这么定义会导致生成的颜色和预期不同但是这不会导致你所说的
按照你的代码写的demo 运行正常 所以你贴出来的这部分代码不是导致问题的原因