#include<graphics.h>
#include<conio.h>
void main()
{
initgraph(640,480);
IMAGE img; //定义两个image
int x,y,cxy,num; //cxy是指定的某点
int R,G,B,r,g,b;
loadimage(&img,".\\img\\bb.bmp");
putimage(0,0,&img);
SetWorkingImage();
cxy=getpixel(0,0);
r=GetRValue(cxy);
g=GetGValue(cxy);
b=GetBValue(cxy);
DWORD *pMem=GetImageBuffer(&img);
for(y=0;y<img.getheight();y++)
{
for(x=0;x<img.getwidth();x++)
{
num=x+y*img.getwidth();
R=GetRValue(pMem[num]);
G=GetGValue(pMem[num]);
B=GetBValue(pMem[num]);
if(B==r&&R==b&&G==g)//这儿的条件是因为像素的颜色存储不是RGB它是RB交换了的。纠结了我很久
pMem[num]=WHITE;
else
pMem[num]=BLACK;
}
}
FlushBatchDraw();
putimage(0,0,&img);getch();
}
#include<conio.h>
void main()
{
initgraph(640,480);
IMAGE img; //定义两个image
int x,y,cxy,num; //cxy是指定的某点
int R,G,B,r,g,b;
loadimage(&img,".\\img\\bb.bmp");
putimage(0,0,&img);
SetWorkingImage();
cxy=getpixel(0,0);
r=GetRValue(cxy);
g=GetGValue(cxy);
b=GetBValue(cxy);
DWORD *pMem=GetImageBuffer(&img);
for(y=0;y<img.getheight();y++)
{
for(x=0;x<img.getwidth();x++)
{
num=x+y*img.getwidth();
R=GetRValue(pMem[num]);
G=GetGValue(pMem[num]);
B=GetBValue(pMem[num]);
if(B==r&&R==b&&G==g)//这儿的条件是因为像素的颜色存储不是RGB它是RB交换了的。纠结了我很久
pMem[num]=WHITE;
else
pMem[num]=BLACK;
}
}
FlushBatchDraw();
putimage(0,0,&img);getch();
}