2010-08-19 3 views
9

Ich bin auf der Suche nach Ideen, um einen WPF Brush mit gebürstetem Stahl Look, ähnlich dem MacOSX Panther Stil, zu erstellen, vorzugsweise ohne auf einen ImageBrush zurückzugreifen. Gibt es eine unkonventionelle Art, einen GradientBrush zu verwenden, um diesen Effekt zu erzeugen?Bürste aus gebürstetem Stahl in WPF?

Vielen Dank im Voraus!

+0

Gibt es einen Grund, warum Sie einen ImageBrush nicht verwenden möchten? Ich glaube nicht, dass es einen einfachen Weg gibt, es mit anderen Pinseln zu machen ... –

+0

@Thomas: Das habe ich vermutet. Ein ImageBrush skaliert schlecht, oder? Optimalerweise würde der Pinsel sowohl auf meinem 96 DPI-Desktop als auch auf meinem 200 DPI-Embedded-Gerät gleich aussehen. Aber wenn Sie ein Tutorial kennen, um ein passendes Bild zu entwerfen, würde ich es auch schätzen =) – Jens

Antwort

3

Ich weiß nicht, wie man das mit programmatischen Pinseln leicht macht, aber wenn ich Photoshop verwendet habe, um einen Effekt aus gebürstetem Stahl zu erzeugen, erzeugte ich im Wesentlichen Rauschen, verschmierte es dann in Richtung Bürsten:

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

Als jemand in den Kommentaren erwähnt, können Sie dies tun wollen, und irgendeine Art von (Wiederholung?) erstellen Bild Pinsel. Wenn Sie möchten, dass Ihr gebürsteter Stahl-Effekt programmgesteuert erzeugt wird, könnten Sie einen mittleren Filter schreiben, um die Unschärfe für Sie zu machen. Erzeugen von Rauschen ist einfach genug :)

Ein Beispiel für einen mittleren Filter Implementieren:

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

Dieser Ändern eine Nx1 Matrix haben oder haben kleines (Null) für die Gewichte nicht in der aktuellen Zeile, und Sie werden eine horizontale Unschärfe haben.

+0

Danke für die Antwort! Dies wäre nicht einfach als WPF-Pinsel zu reproduzieren, aber vielleicht einen Versuch wert. Ich werde die Frage noch eine Weile offen lassen =) – Jens

1

Sie könnten einen gedrehten LinearGradientBrush mit vielen GradientStops in verschiedenen Grautönen verwenden. Nun, es ist zumindest ein Ansatz. Um skalierbar zu sein, müsste man die GradientStops irgendwie nur ein Pixel breit machen, was wahrscheinlich die Größe des gefüllten Objekts dem Pinsel geben muss, denke ich. Könnte zu einer schwierigen Aufgabe werden, aber das ist das Schicksal eines echten Hackers, oder?

Verwandte Themen