- 原理
抠图,就是改变图片某一部分像素的Alpha值[0-255]。图片所有像素的Alpha值组成了Alpha通道。本文利用一张图片的Alpha通道,对另一张图片进行处理。Alpha即ARGB格式图片的A。有关图片的内存格式,请参考:https://blog.csdn.net/u014470361/article/details/88689069 - 主要代码
bool SetImgAlpha(CxImage& img, CxImage& alphaImg)
{
if (!img.IsValid() || !alphaImg.IsValid()) {
return false;
}
// 修改为ARGB格式
if (!img.IsGrayScale()) img.IncreaseBpp(32);
// 调整alphaImg大小与img大小一致
alphaImg.Resample(img.GetWidth(), img.GetHeight());
// 复制alphaImg的alpha通道信息
img.AlphaCopy(alphaImg);
}
图片读取,保存就不详细写啦。不懂的可以参考我的另一篇博文:https://blog.csdn.net/qq_20938855/article/details/92788335
- 资源文件
alphaImg:
img:
效果:
利用这个方法理论上可以扣出任意形状的图片。只要有相应的alphaImg。