第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

刪除圖像的圓形透明部分 c#

刪除圖像的圓形透明部分 c#

C#
絕地無雙 2022-01-09 15:45:50
我正在位圖上創(chuàng)建一個圓圈,但想在其中有一個洞。搜索半小時后,我才找到將圖像裁剪為圓形的方法。困難的是,中間的孔應該像圖像的其余部分一樣透明。這是基礎(chǔ)圖像黃色圓圈代表應該添加的透明區(qū)域。感謝您提供任何幫助。
查看完整描述

1 回答

?
一只名叫tom的貓

TA貢獻1906條經(jīng)驗 獲得超3個贊

開始很簡單:通過執(zhí)行 a 創(chuàng)建一個透明位圖g.Clear(Color.Transparent),然后用一種顏色繪制/填充一個圓圈。


下一步有點棘手:接下來你想用透明度繪制孔。


為此,您需要將 Graphics 對象切換到右側(cè)CompositingMode;默認是SourceOver但是你想要的SourceCopy。前者覆蓋了創(chuàng)建混合顏色的 alpha 值。后者將做我們想做的事:通過將繪制的顏色(包括 alpha)復制到舊的顏色上來繪制洞。


這是一個例子:


Bitmap bmp = new Bitmap(500, 500);

using (Graphics g = Graphics.FromImage(bmp))

{

    g.Clear(Color.Transparent);

    //g.SmoothingMode = SmoothingMode.AntiAlias;

    g.CompositingMode = CompositingMode.SourceCopy;

    g.FillEllipse(Brushes.DarkGreen, 100, 100, 300, 300);

    g.FillEllipse(Brushes.Transparent, 200, 200, 100, 100);

}

pictureBox1.Image = bmp;

這是 a PictureBoxwith a 的樣子BackgroundImage:

http://img1.sycdn.imooc.com//61da92ec00011c4605000499.jpg

幾點注意事項:

  • 您還可以使用半透明畫筆創(chuàng)建一個“著色”孔;但是不要為此使用抗鋸齒,因為它會引入彩色邊緣。

  • 我們在這里使用了簡單的圓圈,但GraphicsPath您可以創(chuàng)建和填充幾乎任何形狀和復雜性的形狀。

  • 并且使用 aGraphicsPath也可以作為填充透明度的替代方法:首先添加大橢圓,然后添加較小的內(nèi)橢圓,路徑將創(chuàng)建一個帶有孔的路徑,填充它會得到完全相同的結(jié)果!但我發(fā)現(xiàn)上面的解決方案更有指導意義..

  • 最后說明:正如 clarkitect 所指出的,要保存,請使用支持透明度的格式。Png總是推薦..


查看完整回答
反對 回復 2022-01-09
  • 1 回答
  • 0 關(guān)注
  • 279 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號