C++利用CxImage庫扣圓形圖片

  1. 原理
    摳圖,就是改變圖片某一部分像素的Alpha值[0-255]。圖片所有像素的Alpha值組成了Alpha通道。本文利用一張圖片的Alpha通道,對另一張圖片進行處理。Alpha即ARGB格式圖片的A。有關圖片的內存格式,請參考:https://blog.csdn.net/u014470361/article/details/88689069
  2. 主要代碼
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。

  1. 資源文件
    alphaImg:
    在這裏插入圖片描述
    img:
    在這裏插入圖片描述
    效果:
    在這裏插入圖片描述

利用這個方法理論上可以扣出任意形狀的圖片。只要有相應的alphaImg。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章