http://www.cnblogs.com/lzmfywz/archive/2012/06/29/2569975.html
不是已经说的很清楚了?
目的:一个图片叠加到另一个图片时,去掉叠加图片的背景色掩码位图就是一个黑白位图,黑色部分就是要显示的部分,白色部分就是要透明的部分
经过掩码运算后,即可将一个位图的背景色去掉而只保留内容部分

解决方案 »

  1.   


    位图本身带有掩码吗?http://msdn.microsoft.com/zh-cn/beginner/ac41c4k5.aspx看msdn里的说法, 你用ctrl+f搜”掩码” ,就会看到很多关于掩码的东西。
    是否说明位图本身的像素里就有掩码这个东西存在啊
      

  2.   

    bitmap你必须自己做掩码
    icon里有掩码
      

  3.   

    要背景透明比较简单的办法是使用TransparentBlt,因此。
      

  4.   


    位图本身带有掩码吗?http://msdn.microsoft.com/zh-cn/beginner/ac41c4k5.aspx看msdn里的说法, 你用ctrl+f搜”掩码” ,就会看到很多关于掩码的东西。
    是否说明位图本身的像素里就有掩码这个东西存在啊
    不是位图掩码是一张图片,共有两张图片。一张是要显示的图片,为透明;一张是位图掩码。在OnPaint中合并就可以显示在界面上,你可以收一下MFC透明贴图,可以找到例子。
      

  5.   


    了然bmp图片如果要透明,必须做掩码,因为本身没掩码所致。
    那么32bpp的bmp呢?32 bpp的bmp带了透明通道,这里的透明通道是和 bmp图片成为透明,是否是同一个东西?感觉不是:2后者是采用掩码运算搞定的。前者,似乎是图片存储的时候,采用了某种格式,好像透明。 实话,我到现在也没有见过透明通道的效果到底是什么?或者说,一张图是否带了透明通道,我也分不清。
      

  6.   


    了然bmp图片如果要透明,必须做掩码,因为本身没掩码所致。
    那么32bpp的bmp呢?32 bpp的bmp带了透明通道,这里的透明通道是和 bmp图片成为透明,是否是同一个东西?感觉不是:2后者是采用掩码运算搞定的。前者,似乎是图片存储的时候,采用了某种格式,好像透明。 实话,我到现在也没有见过透明通道的效果到底是什么?或者说,一张图是否带了透明通道,我也分不清。
    这是另一种显示方式,像晕妻的窗口,感觉上像是一个磨砂的玻璃,
    当一个图片贴到另一个图片上时,希望感觉这个图片是画到一个磨砂玻璃上然后再贴到目标的效果这个你去研究一下AlphaBlend
      

  7.   


    了然bmp图片如果要透明,必须做掩码,因为本身没掩码所致。
    那么32bpp的bmp呢?32 bpp的bmp带了透明通道,这里的透明通道是和 bmp图片成为透明,是否是同一个东西?感觉不是:2后者是采用掩码运算搞定的。前者,似乎是图片存储的时候,采用了某种格式,好像透明。 实话,我到现在也没有见过透明通道的效果到底是什么?或者说,一张图是否带了透明通道,我也分不清。
    32 bpp的bmp带了透明通道 指的是ARGB图像中的A吗一种色彩模式,也就是RGB色彩模式附加上Alpha(透明度)通道,常见于32位位图的存储结构。
    ARGB---Alpha,Red,Green,Blue.
    Alpha-图像通道
    如果图形卡具有32位总线,附加的8位信号就被用来保存不可见的透明度信号以方便处理用,这就是Alpha通道。白色的alpha象素用以定义不透明的彩色象素,而黑色的alpha象素用以定义透明象素,黑白之间的灰阶用来定义半透明象素。这种透明通道毕竟是显示RGB颜色的透明程度的,而掩码貌似是一个过滤器、选择器,将图像分成2个或多个部分分别处理。
      

  8.   


    了然bmp图片如果要透明,必须做掩码,因为本身没掩码所致。
    那么32bpp的bmp呢?32 bpp的bmp带了透明通道,这里的透明通道是和 bmp图片成为透明,是否是同一个东西?感觉不是:2后者是采用掩码运算搞定的。前者,似乎是图片存储的时候,采用了某种格式,好像透明。 实话,我到现在也没有见过透明通道的效果到底是什么?或者说,一张图是否带了透明通道,我也分不清。
    32 bpp的bmp带了透明通道 指的是ARGB图像中的A吗一种色彩模式,也就是RGB色彩模式附加上Alpha(透明度)通道,常见于32位位图的存储结构。
    ARGB---Alpha,Red,Green,Blue.
    Alpha-图像通道
    如果图形卡具有32位总线,附加的8位信号就被用来保存不可见的透明度信号以方便处理用,这就是Alpha通道。白色的alpha象素用以定义不透明的彩色象素,而黑色的alpha象素用以定义透明象素,黑白之间的灰阶用来定义半透明象素。这种透明通道毕竟是显示RGB颜色的透明程度的,而掩码貌似是一个过滤器、选择器,将图像分成2个或多个部分分别处理。我知道了, 图片掩码跟透明通道是2个不同的概念,即使是png这种图片,也是可以采用掩码技术进行合并图片的跟透明通道无关
      

  9.   

    “掩码” 也就是 mask , 用处很多, 本质 就是 一个 模板。 看你怎么用。
    如bitmap5 的定义如下:
    typedef struct {
            DWORD        bV5Size;
            LONG         bV5Width;
            LONG         bV5Height;
            WORD         bV5Planes;
            WORD         bV5BitCount;
            DWORD        bV5Compression;
            DWORD        bV5SizeImage;
            LONG         bV5XPelsPerMeter;
            LONG         bV5YPelsPerMeter;
            DWORD        bV5ClrUsed;
            DWORD        bV5ClrImportant;
            DWORD        bV5RedMask;
            DWORD        bV5GreenMask;
            DWORD        bV5BlueMask;
            DWORD        bV5AlphaMask;
            DWORD        bV5CSType;
            CIEXYZTRIPLE bV5Endpoints;
            DWORD        bV5GammaRed;
            DWORD        bV5GammaGreen;
            DWORD        bV5GammaBlue;
            DWORD        bV5Intent;
            DWORD        bV5ProfileData;
            DWORD        bV5ProfileSize;
            DWORD        bV5Reserved;
    } BITMAPV5HEADER, FAR *LPBITMAPV5HEADER, *PBITMAPV5HEADER;