{"id":172,"date":"2016-09-02T11:27:45","date_gmt":"2016-09-02T09:27:45","guid":{"rendered":"http:\/\/dtp-soft.de\/?p=172"},"modified":"2016-09-02T11:46:47","modified_gmt":"2016-09-02T09:46:47","slug":"wpf-verschwommene-bilder","status":"publish","type":"post","link":"http:\/\/dtp-soft.de\/?p=172","title":{"rendered":"WPF: Verschwommene Bilder"},"content":{"rendered":"<p id=\"verschwommene-bilder-in-wpf\" class=\"sectionedit1\">Wie kommt es, dass Bilder verschwommen wirken, obwohl sie genau so gro\u00df gezeichnet werden, wie sie sind?<\/p>\n<div class=\"level2\">\n<p>Das liegt unter WPF leider daran, dass WPF sich davon verabschiedet hat, Aufl\u00f6sungsabh\u00e4ngig zu sein. Statt also die tats\u00e4chlichen Pixel anzugeben, werden Gr\u00f6\u00dfenangaben unter WPF in Measure Units, also Ma\u00dfeinheiten gemacht. Diese sind nicht in int angegeben, sondern in Double. Man kann Elemente daher auch bei (1.473, 9.732628) positionieren und WPF versucht dann das auf einem Monitor mit Pixeln darzustellen. Zus\u00e4tzlich kann auf die Skalierung mit reinspielen.<\/p>\n<p>Wenn man ein 3\u00d73 Pixel gro\u00dfes Bild in einem 4\u00d74 Pixel gro\u00dfen Rahmen darstellen will, kann man keine eindeutige Zuordnung der Pixel finden. Die Farben der 4\u00d74 Pixel werden also aus den 3\u00d73 Pixeln \u201egemischt\u201c. Dadurch werden harte Kanten verschwommen.<\/p>\n<p>F\u00fcr jedes UIElement in WPF kann man mit der Property SnapsToDevicePixels festlegen, dass Positionierungen nur an ganzen Pixeln stattfinden sollen. Leider funktioniert diese Eigenschaft f\u00fcr Bilder nicht. Eine L\u00f6sung hierf\u00fcr kann sein, das Rendering besonders auszuw\u00e4hlen.<\/p>\n<pre class=\"lang:xhtml decode:true\">&lt;Image Source=\"Linien.png\" RenderOptions.BitmapScalingMode=\"NearestNeighbor\" \/&gt;<\/pre>\n<p>&nbsp;<\/p>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Wie kommt es, dass Bilder verschwommen wirken, obwohl sie genau so gro\u00df gezeichnet werden, wie sie sind? Das liegt unter WPF leider daran, dass WPF sich davon verabschiedet hat, Aufl\u00f6sungsabh\u00e4ngig zu sein. Statt also die tats\u00e4chlichen Pixel anzugeben, werden Gr\u00f6\u00dfenangaben unter WPF in Measure Units, also Ma\u00dfeinheiten gemacht. Diese sind nicht in int angegeben, sondern&hellip;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[1],"tags":[],"class_list":["post-172","post","type-post","status-publish","format-standard","hentry","category-allgemein"],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"http:\/\/dtp-soft.de\/index.php?rest_route=\/wp\/v2\/posts\/172","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/dtp-soft.de\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/dtp-soft.de\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/dtp-soft.de\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/dtp-soft.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=172"}],"version-history":[{"count":2,"href":"http:\/\/dtp-soft.de\/index.php?rest_route=\/wp\/v2\/posts\/172\/revisions"}],"predecessor-version":[{"id":174,"href":"http:\/\/dtp-soft.de\/index.php?rest_route=\/wp\/v2\/posts\/172\/revisions\/174"}],"wp:attachment":[{"href":"http:\/\/dtp-soft.de\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=172"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/dtp-soft.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=172"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/dtp-soft.de\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=172"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}