TransparentBlt、StretchBlt与BitBl 的区别
2012-10-31 10:53
176 查看
1. http://blog.sina.com.cn/s/blog_684355870100ll6n.html
BitBlt()不调整图片大小,直接复制到目标区域
StretchBlt()调整图片大小以适应目标区域
TransparentBlt()调整图片大小以适应目标区域(透明)
2. http://www.rosoo.net/a/201110/15131.html
BOOL StretchBlt(
int x, //指定目的矩形区域左上角的X坐标
int y, //指定目的矩形区域左上角的Y坐标
int nWidth, //指定目的矩形区域的宽度
int nHeight, //指定目的矩形区域的高度
CDC* pSrcDC,
int xSrc, //指定源矩形区域左上角的X坐标
int ySrc, //指定源矩形区域左上角的Y坐标
int nSrcWidth, //指定源矩形区域的宽度
int nSrcHeight, //指定源矩形区域的高度
DWORD dwRop //此参数参考MSDN,SRCCOPY类型为直接拷贝
); //此函数将一个位图资源从一个矩形区域拷贝到另一个矩形区域,即缩放位图
BOOL TransparentBlt(
int xDest,
int yDest,
int nDestWidth,
int nDestHeight,
CDC* pSrcDC,
int xSrc,
int ySrc,
int nSrcWidth,
int nSrcHeight,
UINT clrTransparent
); //此函数同样具有缩放功能,但此函数最后一个参数用来指定作为透明色的RGB;
BOOL BitBlt(
int x,
int y,
int nWidth,
int nHeight,
CDC* pSrcDC,
int xSrc,
int ySrc,
DWORD dwRop
); //此函数同样用来拷贝位图资源,但不具备缩放功能.
用法举例:
CPaintDC dc(this); CBitmap BackBMP;
BackBMP.LoadBitmapW(IDB_BITMAP1);
BITMAP bm; BackBMP.GetBitmap(&bm);
CDC ImageDC;
ImageDC.CreateCompatibleDC(&dc);
CBitmap* pOldImageBMP = ImageDC.SelectObject(&BackBMP);
dc.StretchBlt(0, 0, bm.bmWidth+15, bm.bmHeight+15, &ImageDC, 0, 0, bm.bmWidth, bm.bmHeight, SRCCOPY);
ImageDC.SelectObject(pOldImageBMP);
CBitmap ForeBMP;
ForeBMP.LoadBitmapW(IDB_BITMAP2);
ForeBMP.GetBitmap(&bm);
pOldImageBMP = ImageDC.SelectObject(&ForeBMP);
dc.TransparentBlt(0, 0, bm.bmWidth+15, bm.bmHeight+15, &ImageDC, 0, 0, bm.bmWidth, bm.bmHeight, RGB(255, 255, 255));
ImageDC.SelectObject(pOldImageBMP);
BitBlt()不调整图片大小,直接复制到目标区域
StretchBlt()调整图片大小以适应目标区域
TransparentBlt()调整图片大小以适应目标区域(透明)
2. http://www.rosoo.net/a/201110/15131.html
BOOL StretchBlt(
int x, //指定目的矩形区域左上角的X坐标
int y, //指定目的矩形区域左上角的Y坐标
int nWidth, //指定目的矩形区域的宽度
int nHeight, //指定目的矩形区域的高度
CDC* pSrcDC,
int xSrc, //指定源矩形区域左上角的X坐标
int ySrc, //指定源矩形区域左上角的Y坐标
int nSrcWidth, //指定源矩形区域的宽度
int nSrcHeight, //指定源矩形区域的高度
DWORD dwRop //此参数参考MSDN,SRCCOPY类型为直接拷贝
); //此函数将一个位图资源从一个矩形区域拷贝到另一个矩形区域,即缩放位图
BOOL TransparentBlt(
int xDest,
int yDest,
int nDestWidth,
int nDestHeight,
CDC* pSrcDC,
int xSrc,
int ySrc,
int nSrcWidth,
int nSrcHeight,
UINT clrTransparent
); //此函数同样具有缩放功能,但此函数最后一个参数用来指定作为透明色的RGB;
BOOL BitBlt(
int x,
int y,
int nWidth,
int nHeight,
CDC* pSrcDC,
int xSrc,
int ySrc,
DWORD dwRop
); //此函数同样用来拷贝位图资源,但不具备缩放功能.
用法举例:
CPaintDC dc(this); CBitmap BackBMP;
BackBMP.LoadBitmapW(IDB_BITMAP1);
BITMAP bm; BackBMP.GetBitmap(&bm);
CDC ImageDC;
ImageDC.CreateCompatibleDC(&dc);
CBitmap* pOldImageBMP = ImageDC.SelectObject(&BackBMP);
dc.StretchBlt(0, 0, bm.bmWidth+15, bm.bmHeight+15, &ImageDC, 0, 0, bm.bmWidth, bm.bmHeight, SRCCOPY);
ImageDC.SelectObject(pOldImageBMP);
CBitmap ForeBMP;
ForeBMP.LoadBitmapW(IDB_BITMAP2);
ForeBMP.GetBitmap(&bm);
pOldImageBMP = ImageDC.SelectObject(&ForeBMP);
dc.TransparentBlt(0, 0, bm.bmWidth+15, bm.bmHeight+15, &ImageDC, 0, 0, bm.bmWidth, bm.bmHeight, RGB(255, 255, 255));
ImageDC.SelectObject(pOldImageBMP);
相关文章推荐
- TransparentBlt、StretchBlt与BitBlt三个函数的区别
- TransparentBlt、StretchBlt与BitBlt三个函数的区别
- TransparentBlt、StretchBlt与BitBlt三个函数的区别
- TransparentBlt、StretchBlt与BitBlt三个函数的区别
- TransparentBlt、StretchBlt与BitBlt三个函数的区别
- TransparentBlt、StretchBlt与BitBlt三个函数的区别
- TransparentBlt、StretchBlt与BitBlt三个函数的区别
- TransparentBlt、StretchBlt与BitBlt三个贴图函数的区别
- TransparentBlt、StretchBlt与BitBlt三个函数的区别
- TransparentBlt、StretchBlt与BitBlt三个函数的区别
- TransparentBlt、StretchBlt与BitBlt三个函数的区别
- bitblt 和stretchblt的区别 解释、、、
- BitBlts, AlphaBlend, TransparentBlt, 和 StretchBlt 有 GPU 加速
- BitBlt和StretchBlt的区别
- BitBlt和StretchBlt的区别
- bitblt 与 stretchblt 的使用区别
- BitBlt和StretchBlt的区别
- BitBlt 和StretchBlt的区别
- gcc与g++有什么区别?
- C/C++数组名与指针区别深入探索(转)