簡體   English   中英

如何通過 C#/WinForms 使用 GDI+ 在多邊形上繪制漸變邊框?

[英]How do I draw a graduated border on a polygon using GDI+ via C#/WinForms?

我有各種形狀和大小的多邊形。 它們有實心填充,目前是實心邊框。

我想給多邊形的邊緣漸變以軟化它們。

到目前為止,我已經嘗試使用帶有LinearGradientBrushPen ,雖然它產生的效果非常有趣,但絕對不是我想要的 ;)

我查看了System.Drawing.Drawing2D命名空間,但似乎沒有任何其他類適用於此目的。

我四處搜索了一下,我能找到的文章主要是關於為矩形創建邊框,這更容易,或者無關緊要。

總而言之,有沒有人有辦法使用 GDI+ 在多邊形上繪制漸變邊框?

也許您之前嘗試產生的屏幕截圖和您想要的模型會有所幫助?

雖然我懷疑您遇到的問題是漸變的方向和偏移在整個形狀中是一致的,並且不會隨着多邊形線的方向而改變。

您是否查看過PathGradientBrush ( 例子) 如果你不能用鋼筆來實現形狀的描邊效果,也許你可以用兩個“填充”來實現,第一個(邊框)比第二個(內部)稍大.

我想我已經完全按照你的要求做了,但就我而言,我已經用它來在文本上創建柔和的陰影。

我執行以下操作:

  1. 將文本(在您的情況下:多邊形)繪制到位圖
  2. 僅在 Alpha 通道上應用柔化濾鏡
  3. 重復步驟 2 所需的次數以獲得所需的梯度寬度
  4. 最后將結果繪制到生成的位圖/屏幕上

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM