Problem mit unscharfen Bitmaps

Bild von T. Biedermann

Wir haben hier schon öfters ein Problem mit unscharfen Bitmaps in Blend.
Das Icon ist im Photoshop wunderbar scharf, in Blend allerdings ist es
sehr unterschiedlich. Ich habe jetzt ein Dokument entdeckt in dem das
Problem genauer beschreiben wird:

http://blogs.msdn.com/dwayneneed/archive/2007/10/05/blurry-bitmaps.aspx

Das funktioniert leider immer noch nicht immer und es gibt sogar ganz
geringe Unterschiede wie man es an diesem Beispiel sieht:

http://www.design-animation.de/tmp/Blurry%20icons.png

Die roten Rahmen markieren wo ein Unterschied zu seheh ist.
Für Tipps wie das zu lösen ist wäre ich echt dankbar.

:

Habt Ihr das hier schon

Bild von Daniel Greitens

Habt Ihr das hier schon ausprobiert? http://blog.actiprosoftware.com/post/How-to-prevent-blurry-images-and-li...

Viele Grüße,

Daniel Greitens
MVP Visual Developer Expression
http://www.maximago.de

Ja, das haben mir die

Bild von T. Biedermann

Ja, das haben mir die Entwickler gestern gezeigt und die Ergebnisse scheinen wirklich zu funktionieren. Ich hatte auch Kontakt zu Microsoft und die Bestätigen das dies ein WPF Problem ist und Blend nix dafür kann Wink

Auf jeden Fall ist das Problem damit scheinbar gelöst (muss mal abwarten bis komplexere Ergebnisse vorliegen).

Danke aber für den Link.

:

Scharfe Bitmaps / PNGs

Hallo Zusammen,

ich bin gerade dabei mir Blend 3 anzueignen. Auf der Suche nach dem "Bitmap-Problem" bin ich auf diesen Post gestoßen. Ich habe mir das oben angegebene File runtergeladen. Nun meine Frage: wie binde ich das in mein Projekt ein? Ich sehe hier eine "Bitmap.cs" datei. Reicht das wenn ich diese in mein Projekt einbinde? Muß ich sonst noch auf irgenwelche anderen Einstellungen achten? Und funktioniert das ganze auch mit PNGs oder muß ich meine Icons zuerst in Bitmaps umwandeln?

Viele Grüße

nod

Hey nod, ich kenne die

Bild von Timo Stönner

Hey nod,

ich kenne die angegebene Komponente leider nicht, kann dazu also wenig sagen, aber wenn du WPF 4 einsetzen kannst/willst, dann gibt es jetzt die UseLayoutRounding Property bei Elementen:

http://msdn.microsoft.com/en-us/library/system.windows.frameworkelement.uselayoutrounding(v=VS.100).aspx

Wenn du die in dem umgebenen Container auf true setzt, dann sollte das enthaltene Bild/Icon/Symbol scharf dargestellt werden.

Gruß
Timo

Hi Timo, vielen Dank für den

Hi Timo,
vielen Dank für den Hinweis. Ist dies schon in Blend 3 enthalten oder hat dies mit Blend nichts zu tun? Blend 4 RC ist ja grad raus.

Falls noch jemand weiß wie ich die Komponente (ImageSnappingToPixels) in Blend 3 benutze wäre ich dankbar um einen Ratschlag.

Grüße
nod

Komponente in eigenem Control

So, wie die Komponente anzuwenden ist habe ich mittlerwile rausgefunden. Bleibt aber dennoch eine Frage. Ich möchte gerne in meinem Control (Button) die möglichkeit haben ein Icon dazustellen. Wie binde ich nun das Bitmap-Control in mein Button-Control ein, so dass ich später unter Eigenschaft nur den Pfad zum BMP/PNG hinzufügen muß?
Sorry bin noch Anfänger Smile

LayoutRounding hat nichts mit

Bild von Daniel Greitens

LayoutRounding hat nichts mit der Darstellung von Bitmaps zu tun, sondern nur damit, wie der Randbereich der Elemente gerendert wird!

Wenn beispielsweise zwei Rectangles in identischer Farbe in einem StackPanel nebeneinander liegen, dann sieht man in der Regel eine leichte Linie zwischen den Beiden. Das liegt daran, dass sich (vor allem bei scaleTransform) Positionen ergeben, die nicht exakt mit den Pixel-Positionen übereinstimmen. Artifakte ausder Sub-Pixel-Berechnung nennt sich das auch.

Um das gerade zu ziehen, kann für jedes UIElement die Eigenschaft UseLayoutProperty auf true setzen.
Vor WPF 4 stand dazu die Eigenschaft SnapToDevicePixel zur Verfügung, in WPF 4 haben sie es an Silverlight angeglichen und in beiden Varianten heißt es "UseLayoutRounding".

Mehr Infos hier:
http://blogs.msdn.com/text/archive/2009/08/27/layout-rounding.aspx
http://msdn.microsoft.com/de-de/library/system.windows.uielement.uselayoutrounding(VS.95).aspx
http://msdn.microsoft.com/en-us/library/system.windows.uielement.snapstodevicepixels(VS.100).aspx

Und zur vorherigen Frage:

Bild von Daniel Greitens

Und zur vorherigen Frage: Schau Dir mal das Tutorial
"Silverlight: Programmieren eines Custom Controls von 0 bis 100 (PDF)" unter
http://yourexpression.de/content/video-casts-zu-silverlight an. Das sollte in guter Start sein. Ansonsten werde ich in Kürze einen neuen Webcast genau mit diesem Thema entweder hier auf yourExpression oder aus MSDN publizieren.

Vielen Dank für die Links und

Vielen Dank für die Links und die Tips! Es funktioniert Smile
Beste Grüße
nod