- 原理
摳圖,就是改變圖片某一部分像素的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。