2010-08-19 31 views
9

我正在尋找想法來創建一個WPF畫筆,用拉絲鋼看,類似於MacOSX Panther風格,最好不訴諸ImageBrush。 有沒有一種使用GradientBrush創建這種效果的時髦方式?WPF中的拉絲鋼刷?

提前致謝!

+0

有沒有你不想使用ImageBrush的原因?我不認爲有一種簡單的方法可以用其他刷子來做... – 2010-08-19 08:43:44

+0

@Thomas:我懷疑這一點。一個ImageBrush縮放嚴重,不是嗎?理想情況下,筆刷在我的96 DPI桌面和我的200 DPI嵌入式設備上看起來都一樣。但如果你知道如何設計合適的圖像教程,我也會appriciate =) – Jens 2010-08-19 08:57:41

回答

3

我不知道如何使用程序化筆刷很容易地做到這一點,但是當我使用Photoshop創建拉絲鋼效果時,本質上會產生噪點,然後在刷牙方向上塗抹(模糊):

http://www.adamdorman.com/tutorials/brushed_steel_tutorial.php

正如在評論中提到一個人,你可能要做到這一點,並建立某種形式的(重複?)圖像刷。如果您希望以編程方式生成拉絲鋼效果,則可以編寫一個平均過濾器來爲您製作模糊效果。產生噪聲足夠:)簡單

實現的平均濾波器的一個例子:不能在當前行

http://homepages.inf.ed.ac.uk/rbf/HIPR2/mean.htm

修改這個具有NX1矩陣,或具有小的(零)的權重,你會有一個水平的模糊。

+0

感謝您的答案!這不會很容易重現爲WPF筆刷,但可能值得一試。我會把問題留空一段時間=) – Jens 2010-08-23 06:34:14

1

您可以將旋轉的LinearGradientBrush與許多GradientStops用於不同的灰色調。那麼,這至少是一種方法。爲了使其具有可擴展性,我們需要將GradientStops的寬度設置爲一個像素,這可能需要將填充對象的大小賦予筆刷。可能成爲一項艱鉅的任務,但這是一個真正的黑客的命運,不是嗎?