{"id":6362,"date":"2022-04-13T15:40:05","date_gmt":"2022-04-13T13:40:05","guid":{"rendered":"https:\/\/axebase.net\/blog\/?p=6362"},"modified":"2022-04-13T15:53:26","modified_gmt":"2022-04-13T13:53:26","slug":"font-darstellung-in-java-programmen","status":"publish","type":"post","link":"https:\/\/axebase.net\/blog\/2022\/04\/13\/font-darstellung-in-java-programmen\/","title":{"rendered":"Font-Darstellung in Java-Programmen"},"content":{"rendered":"<p>Da hat man nun seit Ewigkeiten diverse Verbesserungen der Darstellung von Schrift wie <a href=\"https:\/\/de.wikipedia.org\/wiki\/Hint\" rel=\"noopener\" target=\"_blank\">Hinting<\/a> und <a href=\"https:\/\/de.wikipedia.org\/wiki\/Antialiasing_(Computergrafik)\" rel=\"noopener\" target=\"_blank\">Antialiasing<\/a>, da\u00df das Ganze nicht aussieht wie Bitmap-Fonts auf dem Amiga, dennoch wirken sie sich in Java-Programmen nicht aus, selbst, wenn es in diesen zus\u00e4tzlich aktiviert werden kann und worden ist.<\/p>\n<p>Ein Beispiel ist der bekannte <a href=\"https:\/\/www.tvbrowser.org\/\" rel=\"noopener\" target=\"_blank\">TV-Browser<\/a>. Wenigstens betrifft es nicht das Innere des Hauptfensters, also den Programminhalt der Sender, wohl aber den Kopf und auch &#8220;about&#8221;:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/axebase.net\/blog\/wp-content\/uploads\/2022\/04\/hinting0.webp\" alt=\"ohne Hinting\" width=\"500\" height=\"290\" class=\"size-full wp-image-6363\" srcset=\"https:\/\/axebase.net\/blog\/wp-content\/uploads\/2022\/04\/hinting0.webp 500w, https:\/\/axebase.net\/blog\/wp-content\/uploads\/2022\/04\/hinting0-300x174.webp 300w, https:\/\/axebase.net\/blog\/wp-content\/uploads\/2022\/04\/hinting0-210x122.webp 210w\" sizes=\"auto, (max-width: 500px) 100vw, 500px\" \/><\/p>\n<p>Es gibt jedoch M\u00f6glichkeiten, auch in Java-Programmen ein halbwegs anst\u00e4ndiges Font-Rendering zu erhalten. Direkt verglichen:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/axebase.net\/blog\/wp-content\/uploads\/2022\/04\/hinting1.webp\" alt=\"mit Hinting\" width=\"500\" height=\"290\" class=\"size-full wp-image-6364\" srcset=\"https:\/\/axebase.net\/blog\/wp-content\/uploads\/2022\/04\/hinting1.webp 500w, https:\/\/axebase.net\/blog\/wp-content\/uploads\/2022\/04\/hinting1-300x174.webp 300w, https:\/\/axebase.net\/blog\/wp-content\/uploads\/2022\/04\/hinting1-210x122.webp 210w\" sizes=\"auto, (max-width: 500px) 100vw, 500px\" \/><\/p>\n<p>(Btw., falls jemand auf die Idee kommen sollte, nein, das hat absolut nichts mit beta zu tun.)<\/p>\n<ul>\n<li>M\u00f6glichkeit auf Userebene:\n<pre lang=\"sh\" line=\"1\" escaped=\"true\">\r\n$ nano ~\/.xprofile\r\n<\/pre>\n<p>Hinzuf\u00fcgen:<\/p>\n<pre lang=\"sh\" line=\"\" escaped=\"true\">\r\nXft\/Hinting 1\r\nXft\/HintStyle \"hintslight\"\r\nXft\/Antialias 1\r\nXft\/RGBA \"rgb\"\r\n<\/pre>\n<\/li>\n<li>M\u00f6glichkeit auf Systemebene mit einem xsettings-Daemon:\n<pre lang=\"sh\" line=\"1\" escaped=\"true\">\r\n# nano \/etc\/environment\r\n<\/pre>\n<p>Hinzuf\u00fcgen:<\/p>\n<pre lang=\"sh\" line=\"\" escaped=\"true\">\r\n_JAVA_OPTIONS='-Dawt.useSystemAAFontSettings=setting'\r\n<\/pre>\n<p>F\u00fcr &#8220;setting&#8221; tr\u00e4gt man einen der folgenden Werte ein:<\/p>\n<p>\n<table id=\"tablepress-8\" class=\"tablepress tablepress-id-8\">\n<tbody class=\"row-striping row-hover\">\n<tr class=\"row-1\">\n\t<td class=\"column-1\">off, false, default<\/td><td class=\"column-2\">kein Antialiasing<\/td>\n<\/tr>\n<tr class=\"row-2\">\n\t<td class=\"column-1\">on<\/td><td class=\"column-2\">volles Antialiasing<\/td>\n<\/tr>\n<tr class=\"row-3\">\n\t<td class=\"column-1\">gasp<\/td><td class=\"column-2\">in TTF integriertes Hinting<\/td>\n<\/tr>\n<tr class=\"row-4\">\n\t<td class=\"column-1\">lcd, lcd_hrgb<\/td><td class=\"column-2\">Antialiasing f\u00fcr viele gebr\u00e4uchliche LCDs<\/td>\n<\/tr>\n<tr class=\"row-5\">\n\t<td class=\"column-1\">lcd_hbgr, lcd_vrgb, lcd_vbgr<\/td><td class=\"column-2\">alternatives AA-Setting f\u00fcr LCDs<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<!-- #tablepress-8 from cache -->\n<\/li>\n<\/ul>\n<p>Relogin ist n\u00f6tig. Ich selbst habe sowohl User als auch System getestet (kein Unterschied in der Ausgabe) und mich f\u00fcr den systemweiten Eintrag und gasp entschieden.<\/p>\n<ul>\n<li><a href=\"https:\/\/wiki.archlinux.org\/title\/Xsettingsd\" rel=\"noopener\" target=\"_blank\">wiki.archlinux.org &#8211; xsettingsd<\/a><\/li>\n<li><a href=\"https:\/\/wiki.archlinux.org\/title\/Java_Runtime_Environment_fonts\" rel=\"noopener\" target=\"_blank\">wiki.archlinux.org &#8211; JRE fonts<\/a><\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Da hat man nun seit Ewigkeiten diverse Verbesserungen der Darstellung von Schrift wie Hinting und Antialiasing, da\u00df das Ganze nicht aussieht wie Bitmap-Fonts auf dem Amiga, dennoch wirken sie sich in Java-Programmen nicht aus, selbst, wenn es in diesen zus\u00e4tzlich aktiviert werden kann und worden ist. Ein Beispiel ist der bekannte TV-Browser. Wenigstens betrifft es [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_crdt_document":"","footnotes":""},"categories":[26,2,17,5,25,14],"tags":[],"class_list":["post-6362","post","type-post","status-publish","format-standard","hentry","category-arch_based","category-computer","category-desktop_environments","category-linux","category-sid","category-ubuntu_and_derivates"],"_links":{"self":[{"href":"https:\/\/axebase.net\/blog\/wp-json\/wp\/v2\/posts\/6362","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/axebase.net\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/axebase.net\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/axebase.net\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/axebase.net\/blog\/wp-json\/wp\/v2\/comments?post=6362"}],"version-history":[{"count":3,"href":"https:\/\/axebase.net\/blog\/wp-json\/wp\/v2\/posts\/6362\/revisions"}],"predecessor-version":[{"id":6396,"href":"https:\/\/axebase.net\/blog\/wp-json\/wp\/v2\/posts\/6362\/revisions\/6396"}],"wp:attachment":[{"href":"https:\/\/axebase.net\/blog\/wp-json\/wp\/v2\/media?parent=6362"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/axebase.net\/blog\/wp-json\/wp\/v2\/categories?post=6362"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/axebase.net\/blog\/wp-json\/wp\/v2\/tags?post=6362"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}