问题的起因在于graphics.h贴图必须要有掩膜图盖住需要贴图不需要显示的部分,而有些背景不是纯黑色的图片,可能是纯红色或者绿色等等。因此我想通过GetImageBuffer来修改背景色为黑色,结果测试时发现,用这个函数得到的值经常会有偏差,例如RGB(0,255,0),用这个函数得到的值有时候会是RGB(1,255,3)这样的值,我用截图工具去看了下图片,原图的颜色并没有问题,就是纯色的。那么getimagebuffer为什么会出现颜色偏差呢,该如何解决这个问题?
代码:
DWORD* psourcepic = GetImageBuffer(&sourcepic);
for (int i = 0; i < width * height; i++)
{
printf("color[%4d]=%#x\n", i, psourcepic[i]);
}
输出:
color[ 0]=0xff03ff00
color[ 1]=0xff01ff00
color[ 2]=0xff01ff00
color[ 3]=0xff00ff01
color[ 4]=0xff00ff01