能力值:
( LV2,RANK:10 )
|
-
-
2 楼
可以使用剪辑板呀.
|
能力值:
( LV2,RANK:10 )
|
-
-
3 楼
截图后还要对颜色位数进行处理。 在剪切板中又如何处理这些数据
|
能力值:
(RANK:1010 )
|
-
-
4 楼
有
至于用于什么方式传输是另外的事情
|
能力值:
( LV2,RANK:10 )
|
-
-
5 楼
我曾经使用的一段代码 把屏幕图像放到内存
///////////////////////////////////////////////////////////
//函数:InitScreenDib
//功能:初始化屏幕颜色数据
//输入参数:hDC为主程序窗体的DC
//返回值:TRUE - 成功; FALSE - 失败
DIBCOLORAPI BOOL InitScreenDib(HDC hDC)
{
PBITMAPINFO pbmp;
if(hDC == NULL) //DC句柄为空
return FALSE;
if(lpBits!=NULL) //如果颜色数据空间还没有释放就先释放
FreeScreenDib();
hGobalBitmap = CopyScreen();//截取整个屏幕图像
if(hGobalBitmap == NULL)
return FALSE;
if(!CreateBitmapInfoStruct(hGobalBitmap,pbmp)){//初始化位图信息
MessageBox(NULL,"Failed to CreateBitmapInfoStruct()",NULL,MB_OK);
DeleteObject(hGobalBitmap);
return FALSE;
}
pBmpInfoh = (PBITMAPINFOHEADER) pbmp;
lpBits = (LPBYTE) GlobalAlloc(GMEM_FIXED, pBmpInfoh->biSizeImage);//分配保存颜色数据的内存
if(lpBits == NULL) {
MessageBox(NULL,"Failed to GlobalAlloc()",NULL,MB_OK);
DeleteObject(hGobalBitmap);
return FALSE;
}
//将位图的颜色信息保存到分配的内存空间中,这时候颜色的格式是0RGB
/* if (!GetDIBits(hDC, hGobalBitmap, 0, (WORD) pBmpInfoh->biHeight, lpBits, pbmp, DIB_RGB_COLORS)){
MessageBox(NULL,"Failed to GetDIBits",NULL,MB_OK);
return FALSE;
}*/
//将位图的颜色信息保存到分配的内存空间中,这时候颜色的格式是0RGB
if(GetBitmapBits(hGobalBitmap,pBmpInfoh->biSizeImage,lpBits)==0){
MessageBox(NULL,"Failed to GetDIBits",NULL,MB_OK);
DeleteObject(hGobalBitmap);
return FALSE;
}
DeleteObject(hGobalBitmap);
return TRUE;
}
////////////////////////////////////////////////////////////
|
能力值:
( LV2,RANK:10 )
|
-
-
6 楼
谢谢 valx
原来有 GetBitmapBits 这个函数,这正是我需要的! 谢谢!
|
能力值:
( LV9,RANK:380 )
|
-
-
7 楼
截图至内存,那么如何把内存中关于图片的数据经过处理,显示出图片拉?
|
能力值:
( LV2,RANK:10 )
|
-
-
8 楼
不显示,我通过发usb口发送至下位机。
|
能力值:
( LV9,RANK:380 )
|
-
-
9 楼
你能给个显示出图片的代码吗?
|
能力值:
( LV2,RANK:10 )
|
-
-
10 楼
显示图像就不用转换,直接用HDC就能显示在窗体上,具体可以查查 BitBlt,StretchBlt这两个函数的用法,一般都是通过这两个函数实现的
|
|
|