只使用位操作可以有效地完成图像屏蔽吗?

时间:2016-03-17 01:12:27

标签: c++ graphics bitmap bitwise-operators mask

我有一个位图,当将多个图层合成为一个目标位图时,我需要将其用作图像蒙版。图像掩模是黑色&白色图像,其中黑色指定应绘制的像素,白色从源位图绘制像素。

像素全部采用32位ARGB格式。

如上所述,掩码中的像素是黑色(0xFF000000)或白色(0xFFFFFFFF)。

我试图想出一种快速有效的方法,将掩模像素与位图中的像素组合起来,仅使用位操作。如果剪切的黑色像素的alpha值为0,那将是微不足道的 - 那么我可以用掩模像素和位图像素做一个AND。

是否有任何类型的位饱和度指令或类似的东西?我正在思考以下几点:

uint mask = maskPixel & 0x00FFFFFF;
saturate(mask); 
// If the maskPixel was black, mask will be all 0s, so the result of saturation is still all 0s. 
// If the maskPixel was white, mask will be 0x00FFFFFF, so the saturation will result in 0xFFFFFFFF

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

下面的<div class="row"> <div class="col-sm-4"> <div class="clearfix dropdown"> <button type="button" data-toggle="dropdown" class="pull-right"> <span class="glyphicon glyphicon-menu-hamburger" aria-hidden="true"></span> </button> <ul class="dropdown-menu dropdown-menu-right"> <li><a data-toggle="tab" href="#supra">supraa</a></li> <li><a data-toggle="tab" href="#vespa">vespa</a></li> </ul> </div> <div class="tab-content"> <div id="supra" class="tab-pane fade active in"> <div id="container" style="height: 300px; width: 100%;"></div> </div> <div id="vespa" class="tab-pane fade"> <div id="container1" style=" height: 300px; width: 100%;"></div> </div> </div> </div> 函数将低位扩展为整个unsigned int值。如果只有黑色或白色像素,这应该足够了。

get_mask