HBITMAP screenCapture()
{
HBITMAP hbmpScreen;
HDC hdcScreen = ::GetDC(NULL); HDC hdcMem = ::CreateCompatibleDC(hdcScreen); int nScreenWidth = GetSystemMetrics(SM_CXSCREEN);
int nScreenHeight = GetSystemMetrics(SM_CYSCREEN);
hbmpScreen = CreateCompatibleBitmap(hdcScreen,nScreenWidth,nScreenHeight);//获取屏幕位图 //把屏幕画到位图上
::SelectObject(hdcMem, hbmpScreen);
::BitBlt(hdcMem, 0, 0, nScreenWidth,nScreenHeight, hdcScreen, 0, 0, SRCCOPY); //释放资源
::DeleteDC(hdcScreen);
::DeleteDC(hdcMem);
return hbmpScreen;}
以上是截一张正的图片 我需要一张完全倒转的图片 因为GetDIBits 扫数据储存是倒着的 所以下次 CreateBitmap时会倒着图片完全倒转的 谢谢指教
{
HBITMAP hbmpScreen;
HDC hdcScreen = ::GetDC(NULL); HDC hdcMem = ::CreateCompatibleDC(hdcScreen); int nScreenWidth = GetSystemMetrics(SM_CXSCREEN);
int nScreenHeight = GetSystemMetrics(SM_CYSCREEN);
hbmpScreen = CreateCompatibleBitmap(hdcScreen,nScreenWidth,nScreenHeight);//获取屏幕位图 //把屏幕画到位图上
::SelectObject(hdcMem, hbmpScreen);
::BitBlt(hdcMem, 0, 0, nScreenWidth,nScreenHeight, hdcScreen, 0, 0, SRCCOPY); //释放资源
::DeleteDC(hdcScreen);
::DeleteDC(hdcMem);
return hbmpScreen;}
以上是截一张正的图片 我需要一张完全倒转的图片 因为GetDIBits 扫数据储存是倒着的 所以下次 CreateBitmap时会倒着图片完全倒转的 谢谢指教
解决方案 »
- 请教Direct3D 如何转换当前的视点(摄像机)
- 关于CScrollView
- 如何自动调整CScrollView中的滚动条的位置
- 请做过VC的Splash screen组件的朋友帮帮忙
- 一道初中题
- 请问这两个东东有什么区别吗?
- 怎样获取对方主机的IP地址?
- 在IE的地址栏输入网址后回车是什么事件?(初手)
- WinMe 如何给我的文件夹加密,防止别人进入?如何禁止删除某些文件夹呢?
- VC 打印测井曲线 按照1:200的比例,但是打印出来的经过实际的测量不是1:200的,总是差那么一点点,该怎么解决a
- 请教msc文件,spd,std等文件如何查看
- 请懂VC也懂VB的坛友,帮忙把下边的代码,从VC移植到VB6上?谢谢
也就是GetDIBits 扫图片时图片时 储存的数据是倒着的 我该怎么让图片倒着 被函数扫~
你把图像转一下再扫描不就是正的了
for(int i=0; i<height/2; i++)
{
memcpy(buf,pDibBits+i*lineBytes,lineBytes);
memcpy(pDibBits+i*lineBytes, pDibBits+(height-i-1)*lineBytes,lineBytes);
memcpy(pDibBits+(height-i-1)*lineBytes,buf,lineBytes);
}
delete [] buf;