256色的灰度图像点阵处理后,如何显示出来
从一个256的灰度图像中读出了数据
然后经过数字图像处理
最后现在想显示出来
试验了CreateBitmap
但是显示为全白
void DisImage_256Gray(IMAGE_DIMENTION imgDimention,BYTE** img,HDC hdc,int dc_Width,int dc_Height,int nMod){
int nWidthInPixels=imgDimention.nWidthInPixel;
int nHeightInPixels=imgDimention.nHeightInPixel;
BYTE* ResultImage=new BYTE[HEIGHT_MAX_PIXELS*WIDTH_MAX_PIXELS];
ZeroMemory(ResultImage,sizeof(BYTE)*HEIGHT_MAX_PIXELS*WIDTH_MAX_PIXELS);
BYTE* Pointer=ResultImage;
//将二维图像数组转换为一维图像数组
int i,j;
int test=nWidthInPixels%2; //看看宽度是否是2的倍数,如不是就需要在最后面补一字节的0即0x00;
int RealWidth=nWidthInPixels;
if(test!=0)
RealWidth++;
for(i=0;i<nHeightInPixels;i++){
CopyMemory(Pointer,img[i],RealWidth*sizeof(BYTE));
Pointer+=RealWidth;
}
HBITMAP hBmp=CreateBitmap(RealWidth,nHeightInPixels,1,8,(void*)ResultImage);
HDC hMem=CreateCompatibleDC(hdc);
SelectObject(hMem,hBmp);
if(nMod==1)
BitBlt(hdc,0,0,dc_Width,dc_Height,hMem,0,0,SRCCOPY);
else
StretchBlt(hdc,0,0,dc_Width,dc_Height,hMem,0,0,RealWidth,nHeightInPixels,SRCCOPY);
DeleteDC(hMem);
DeleteObject(hBmp);
delete[] ResultImage;
}