SetDIBitsToDevice
来源:互联网 发布:电动牙刷知乎 编辑:程序博客网 时间:2024/06/04 19:01
#define SHOW_NORMAL1#define SHOW_CENTER2#define SHOW_STRETCH3#define SHOW_ISOSTRETCH4int ShowDib (HDC hdc, BITMAPFILEHEADER * pbmfh, int cxClient, int cyClient, int wShow){if(NULL==pbmfh)return 0;return ShowDib(hdc,(BITMAPINFO*)(pbmfh+1),(BYTE*)pbmfh+(pbmfh->bfOffBits),cxClient,cyClient,wShow);}int ShowDib (HDC hdc, BITMAPINFO * pbmi, BYTE * pBits, int cxClient, int cyClient, int wShow){if(NULL==hdc || NULL==pbmi || NULL==pBits || wShow<SHOW_NORMAL || wShow>SHOW_ISOSTRETCH)return 0;int cxDib, cyDib ;int BltMode, ret ;if (pbmi->bmiHeader.biSize == sizeof (BITMAPCOREHEADER)){cxDib = ((BITMAPCOREHEADER *) pbmi)->bcWidth ;cyDib = ((BITMAPCOREHEADER *) pbmi)->bcHeight ;}else{cxDib = pbmi->bmiHeader.biWidth ;cyDib = abs (pbmi->bmiHeader.biHeight) ;}switch (wShow){case SHOW_NORMAL:return SetDIBitsToDevice (hdc, 0, 0, cxDib, cyDib, 0, 0, 0, cyDib, pBits, pbmi, DIB_RGB_COLORS) ;case SHOW_CENTER:return SetDIBitsToDevice (hdc, (cxClient - cxDib) / 2,(cyClient - cyDib) / 2, cxDib, cyDib, 0, 0, 0, cyDib, pBits, pbmi, DIB_RGB_COLORS) ;case SHOW_STRETCH:BltMode=SetStretchBltMode (hdc, COLORONCOLOR) ;ret=StretchDIBits (hdc, 0, 0, cxClient, cyClient, 0, 0, cxDib, cyDib,pBits, pbmi, DIB_RGB_COLORS, SRCCOPY) ;SetStretchBltMode (hdc, BltMode) ;return ret;case SHOW_ISOSTRETCH:BltMode=SetStretchBltMode (hdc, COLORONCOLOR) ;if(cxDib*cyClient > cyDib*cxClient)//图更宽ret=StretchDIBits (hdc,0,(cyClient-(int)((float)cyDib/(float)cxDib*(float)cxClient))/2,cxClient, (int)((float)cyDib/(float)cxDib*(float)cxClient) , 0, 0, cxDib, cyDib, pBits, pbmi, DIB_RGB_COLORS, SRCCOPY) ;elseret=StretchDIBits (hdc,(cxClient-(int)((float)cxDib/(float)cyDib*(float)cyClient))/2, 0,(int)((float)cxDib/(float)cyDib*(float)cyClient), cyClient,0, 0, cxDib, cyDib, pBits, pbmi, DIB_RGB_COLORS, SRCCOPY) ;SetStretchBltMode (hdc, BltMode) ;return ret;}return 0 ;}ShowDib (hdc, (BITMAPFILEHEADER * )buf3, 640, 480, SHOW_NORMAL);
阅读全文
0 0
- SetDIBitsToDevice
- SetDIBitsToDevice函数
- GetDIBits及SetDIBitsToDevice用法
- SetDIBitsToDevice函数的理解
- SetDIBitsToDevice函数的理解
- SetDIBitsToDevice函数的理解
- VC++:SetDIBitsToDevice 及StretchDIBits
- VC++:SetDIBitsToDevice 及StretchDIBits
- 关于SetDIBitstoDevice函数的儗问
- 理解Bitblt、StretchBlt与SetDIBitsToDevice、StretchDibits
- 理解Bitblt、StretchBlt与SetDIBitsToDevice、StretchDibits
- 理解Bitblt、StretchBlt与SetDIBitsToDevice、StretchDibits .
- 理解Bitblt、StretchBlt与SetDIBitsToDevice、StretchDibits
- 理解Bitblt、StretchBlt与SetDIBitsToDevice、StretchDibits
- 【这篇文章我找了好久啊。。。。用RGB像素画图!!!!!!!!!!!!!!!】使用SetDIBitsToDevice显示RGB数组
- HDU 6203 ping ping ping [LCA+dfs序+树状数组]
- CentOS 6.5 下启动和停止Nginx
- maven 零散配置
- Sea.Js的运行原理
- mnist LSTM 训练、测试,模型保存、加载和识别
- SetDIBitsToDevice
- 简述inline-block的边距问题及解决方法
- 甘蔗问题
- 用函数式编程对JavaScript进行断舍离
- 系统学习深度学习(四十五)--FCN
- 【OI之路】01函数和STL-1函数
- Python生成词云
- 大数据集群测试
- 避免input输入框输入时底部导航栏被软键盘撑挤上来