在开发界面及棋牌游戏过程中,需要很多镂空的图片,而且图片形式一般比较固定.

所以封装了几种常见的镂空方法.

1. 用于没有掩码图,只有指定透明色,不进行伸缩

图片镂空算法集合[图](转)void DrawTransBitmap( HDC hdcDest,            // 目标DC
图片镂空算法集合[图](转)
                                            int nXOriginDest,       // 目标X偏移
图片镂空算法集合[图](转)
                                            int nYOriginDest,       // 目标Y偏移
图片镂空算法集合[图](转)
                                            int nWidthDest,          // 目标宽度
图片镂空算法集合[图](转)
                                            int nHeightDest,        // 目标高度
图片镂空算法集合[图](转)
                                            HDC hdcSrc,              // 源DC
图片镂空算法集合[图](转)
                                            int nXOriginSrc,         // 源X起点
图片镂空算法集合[图](转)
                                            int nYOriginSrc,         // 源Y起点
图片镂空算法集合[图](转)
                                            COLORREF crTransparent // 透明色,COLORREF类型
图片镂空算法集合[图](转)
                                        );
图片镂空算法集合[图](转)
图片镂空算法集合[图](转)

适用图片:图片镂空算法集合[图](转)

2. 用于没有掩码图,只有指定透明色,可以进行伸缩

图片镂空算法集合[图](转) void DrawTransBitmap( HDC hdcDest,       // 目标DC
图片镂空算法集合[图](转)
                                             int nXOriginDest,   // 目标X偏移
图片镂空算法集合[图](转)
                                             int nYOriginDest,   // 目标Y偏移
图片镂空算法集合[图](转)
                                             int nWidthDest,      // 目标宽度
图片镂空算法集合[图](转)
                                             int nHeightDest,    // 目标高度
图片镂空算法集合[图](转)
                                             HDC hdcSrc,          // 源DC
图片镂空算法集合[图](转)
                                             int nXOriginSrc,     // 源X起点
图片镂空算法集合[图](转)
                                             int nYOriginSrc,     // 源Y起点
图片镂空算法集合[图](转)
                                             int nWidthSrc,        // 源宽度
图片镂空算法集合[图](转)
                                             int nHeightSrc,      // 源高度
图片镂空算法集合[图](转)
                                             COLORREF crTransparent  // 透明色,COLORREF类型
图片镂空算法集合[图](转)
      );

适用图片:同1,可拉伸

3.指定掩码图,和掩码图属于不同图片

图片镂空算法集合[图](转) void DrawTransBitmap( HDC hdcDest,        // 目标DC
图片镂空算法集合[图](转)
                                             int nXOriginDest,    // 目标X偏移
图片镂空算法集合[图](转)
                                             int nYOriginDest,    // 目标Y偏移
图片镂空算法集合[图](转)
                                             int nWidthDest,       // 目标宽度
图片镂空算法集合[图](转)
                                             int nHeightDest,     // 目标高度
图片镂空算法集合[图](转)
                                             HDC hdcSrc,          // 源DC
图片镂空算法集合[图](转)
                                             HDC hdcMask,       //掩码DC
图片镂空算法集合[图](转)
                                             int nXOriginSrc,     // 源X起点
图片镂空算法集合[图](转)
                                             int nYOriginSrc,     // 源Y起点
图片镂空算法集合[图](转)
                                            COLORREF crTransparent  // 透明色,COLORREF类型
图片镂空算法集合[图](转)
                                          );

适用图片:图片镂空算法集合[图](转)  和 图片镂空算法集合[图](转)

4.指定图片和掩码图同属于一张图片

图片镂空算法集合[图](转)void DrawTransBitmap(HDC hDC, 
图片镂空算法集合[图](转)                                          
int nPosX, 
图片镂空算法集合[图](转)                                           
int nPosY,
图片镂空算法集合[图](转)                                           
int nCX, 
图片镂空算法集合[图](转)                                           
int nCY, 
图片镂空算法集合[图](转)                                           HBITMAP hObj
                                           );

适用图片:图片镂空算法集合[图](转)

5.得到位图HRGN

   HRGN CreateBitmapRgn(int nWidth,int nHeight,HBITMAP hbmp,COLORREF cTrans);

适用图片:图片镂空算法集合[图](转)

以下是完整代码

 

图片镂空算法集合[图](转)//用于没有掩码图,只有指定透明色,不进行伸缩
图片镂空算法集合[图](转)
void CCommon::DrawTransBitmap( HDC hdcDest,      // 目标DC
图片镂空算法集合[图](转)
                    int nXOriginDest,   // 目标X偏移
图片镂空算法集合[图](转)
                    int nYOriginDest,   // 目标Y偏移
图片镂空算法集合[图](转)
                    int nWidthDest,     // 目标宽度
图片镂空算法集合[图](转)
                    int nHeightDest,    // 目标高度
图片镂空算法集合[图](转)
                    HDC hdcSrc,         // 源DC
图片镂空算法集合[图](转)
                    int nXOriginSrc,    // 源X起点
图片镂空算法集合[图](转)
                    int nYOriginSrc,    // 源Y起点
图片镂空算法集合[图](转)
                    COLORREF crTransparent  // 透明色,COLORREF类型
图片镂空算法集合[图](转)
                    )
}

相关文章:

  • 2021-09-06
  • 2022-12-23
  • 2021-12-13
  • 2022-12-23
  • 2022-01-01
  • 2022-01-07
  • 2021-04-10
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-01-18
  • 2021-10-19
  • 2021-07-15
  • 2021-12-23
相关资源
相似解决方案