关于图片显示的问题????请各位大哥指点指点!!!! 小弟现在已经对一副648*488的BMP格式的图片进行了分析其中分别得到了R。G。B的值分别用三个两维数组存放,现在我想对每一个数组进行读取当我点击一个button时候 就能将其在一个新的窗口中显示出来。我用的SDK编程,利用这个SetDIBitsToDevice函数我不知道怎么来实现!请高手指点指点!! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 int iWidth, iHeight, iBytesWidth; iWidth = 500; iHeight = 500; float dTemp = 960; iBytesWidth = (iWidth % 4) ? (iWidth / 4 + 1) * 4 : iWidth; HANDLE hMem = GlobalAlloc(GMEM_MOVEABLE, iBytesWidth * iHeight * 3); BYTE *Image = (BYTE*)GlobalLock(hMem);//new BYTE[iBytesWidth * iHeight * 3]; //memset(Image, 100, iBytesWidth * iHeight * 3); BITMAPINFO bmi; ZeroMemory(&bmi, sizeof(BITMAPINFO)); bmi.bmiHeader.biSize = sizeof(BITMAPINFOHEADER); bmi.bmiHeader.biWidth = iWidth; bmi.bmiHeader.biHeight = iHeight; bmi.bmiHeader.biPlanes = 1; bmi.bmiHeader.biBitCount = 24; bmi.bmiHeader.biCompression = BI_RGB; ::SetDIBitsToDevice(pDC->GetSafeHdc(), 0, 0, iWidth, iHeight, 0, 0, 0, iHeight, Image, &bmi, DIB_RGB_COLORS); GlobalUnlock(hMem); GlobalFree(hMem); delete []Image; 谢谢~~~extern void R_Show(HWND hwnd){ static BITMAPINFO *pbmi; static BYTE *pBits; HDC hdc = GetDC(hwnd); pBits = *pRArray;(pRArray存放R值的一个二维数组) pbmi->bmiHeader.biSize = sizeof(BITMAPINFOHEADER); pbmi->bmiHeader.biWidth = IMAGEWIDTH/2; pbmi->bmiHeader.biHeight = IMAGEHEIGHT/2; pbmi->bmiHeader.biPlanes = 1; pbmi->bmiHeader.biBitCount = 1; pbmi->bmiHeader.biCompression = BI_RGB; pbmi->bmiHeader.biSizeImage = 0; pbmi->bmiHeader.biXPelsPerMeter = 0; pbmi->bmiHeader.biYPelsPerMeter = 0; pbmi->bmiHeader.biClrUsed = 0; pbmi->bmiHeader.biClrImportant = 0; SetDIBitsToDevice (hdc,0,0,IMAGEWIDTH/2,IMAGEHEIGHT/2,0,0,0,IMAGEHEIGHT/2, pBits,pbmi,DIB_RGB_COLORS) ;}为什么我这么写怎么就报错啊?说什么内存不能写?请指点一下 pBits = *pRArray;static BYTE *pBits;pBits好像是指针吧。 新人求助 关于MFC 中SDI弹出的对话框 获取VIEW指针的问题 有用VS2010的socket高手嘛~~有点急 字符串中数字的比较 Picture控件中显示jpg图片?? 请问哪里有 VC7 可供下载的? 编译设备驱动程序时出现这种提示,怎么回事? 前提:typedef struct _TEST{}TEST;如何定义一个数组TEST[],好像不行的??? 菜鸟的常识性问题 OLE view 看到无效但注册的OLE信息。 动态创建的文本框等控件怎样放到窗体上? 请问如何在运行的时候修改控件的ws_visible属性? 求助,有关从数据库读出数据显示在组合框和日期控件里
iWidth = 500;
iHeight = 500;
float dTemp = 960;
iBytesWidth = (iWidth % 4) ? (iWidth / 4 + 1) * 4 : iWidth;
HANDLE hMem = GlobalAlloc(GMEM_MOVEABLE, iBytesWidth * iHeight * 3);
BYTE *Image = (BYTE*)GlobalLock(hMem);//new BYTE[iBytesWidth * iHeight * 3];
//memset(Image, 100, iBytesWidth * iHeight * 3);
BITMAPINFO bmi;
ZeroMemory(&bmi, sizeof(BITMAPINFO));
bmi.bmiHeader.biSize = sizeof(BITMAPINFOHEADER);
bmi.bmiHeader.biWidth = iWidth;
bmi.bmiHeader.biHeight = iHeight;
bmi.bmiHeader.biPlanes = 1;
bmi.bmiHeader.biBitCount = 24;
bmi.bmiHeader.biCompression = BI_RGB;
::SetDIBitsToDevice(pDC->GetSafeHdc(), 0, 0, iWidth, iHeight, 0, 0, 0, iHeight, Image, &bmi, DIB_RGB_COLORS);
GlobalUnlock(hMem);
GlobalFree(hMem);
delete []Image;
extern void R_Show(HWND hwnd)
{
static BITMAPINFO *pbmi;
static BYTE *pBits;
HDC hdc = GetDC(hwnd);
pBits = *pRArray;(pRArray存放R值的一个二维数组)
pbmi->bmiHeader.biSize = sizeof(BITMAPINFOHEADER);
pbmi->bmiHeader.biWidth = IMAGEWIDTH/2;
pbmi->bmiHeader.biHeight = IMAGEHEIGHT/2;
pbmi->bmiHeader.biPlanes = 1;
pbmi->bmiHeader.biBitCount = 1;
pbmi->bmiHeader.biCompression = BI_RGB;
pbmi->bmiHeader.biSizeImage = 0;
pbmi->bmiHeader.biXPelsPerMeter = 0;
pbmi->bmiHeader.biYPelsPerMeter = 0;
pbmi->bmiHeader.biClrUsed = 0;
pbmi->bmiHeader.biClrImportant = 0; SetDIBitsToDevice (hdc,0,0,IMAGEWIDTH/2,IMAGEHEIGHT/2,0,0,0,IMAGEHEIGHT/2,
pBits,pbmi,DIB_RGB_COLORS) ;}为什么我这么写怎么就报错啊?说什么内存不能写?
请指点一下
static BYTE *pBits;
pBits好像是指针吧。