不能显示出来
因为我要做成DLL文件
请问怎么做
int bSize=sizeof(BITMAPINFOHEADER);
HBITMAP bitmap=(HBITMAP)LoadImage //调入cc指定的图形
(NULL,//
strFile,IMAGE_BITMAP, //文件名,位图方式
0,0, //图形宽,高
LR_LOADFROMFILE|LR_CREATEDIBSECTION//方式
);
// HDC hDC;
// hDC=CreateDC("DISPLAY", NULL, NULL, NULL);
CClientDC dc(NULL);
dc.SelectObject(&bitmap);
COLORREF clr;
int pix_color;
int red,green,blue;
// int Color[256]; for(int fd=0;fd<256;fd++)
{
Color[fd]=0;
}
int h=GetWidth(); int w=GetHeight(); for(int i=1;i<w;i++)
{
for(int j=1;j<h;j++)
{
clr=dc.GetPixel(i,j);
red=GetRValue(clr);
green=GetGValue(clr);
blue=GetBValue(clr);
pix_color=red*0.299+green*0.587+blue*0.114;
Color[pix_color]++;
}
}
为什么每次值都不同
因为我要做成DLL文件
请问怎么做
int bSize=sizeof(BITMAPINFOHEADER);
HBITMAP bitmap=(HBITMAP)LoadImage //调入cc指定的图形
(NULL,//
strFile,IMAGE_BITMAP, //文件名,位图方式
0,0, //图形宽,高
LR_LOADFROMFILE|LR_CREATEDIBSECTION//方式
);
// HDC hDC;
// hDC=CreateDC("DISPLAY", NULL, NULL, NULL);
CClientDC dc(NULL);
dc.SelectObject(&bitmap);
COLORREF clr;
int pix_color;
int red,green,blue;
// int Color[256]; for(int fd=0;fd<256;fd++)
{
Color[fd]=0;
}
int h=GetWidth(); int w=GetHeight(); for(int i=1;i<w;i++)
{
for(int j=1;j<h;j++)
{
clr=dc.GetPixel(i,j);
red=GetRValue(clr);
green=GetGValue(clr);
blue=GetBValue(clr);
pix_color=red*0.299+green*0.587+blue*0.114;
Color[pix_color]++;
}
}
为什么每次值都不同
Color[pix_color]++; //这句什么意思?
dc.SelectObject(&bitmap);
这个可以吗
这个应该是不对的吧,HDC hdc=CreateCompatibleDC(NULL);
HBITMAP holdBmp=(HBITMAP)SelectObject(hdc,bitmap);
...
DeleteObject(bitmap);
SelectObject(hdc,holdBmp);
DeleteDC(hdc);