-
Notifications
You must be signed in to change notification settings - Fork 3
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Jagged rendering on Windows 10 22H2 #8
Comments
Yeah, I was wondering about this as well. They look great on a small 12" 4K tablet - but they look really bad on a 34" 3K monitor. The worst example so far is the 😅 emoji, which renders with the mouth in a frown for some reason. Is it just that Windows can't render this type of font with anti-aliasing? But it renders the original font that ships with Windows with anti-aliasing... so it's kind of a mystery to me. Man, I wish Microsoft would just pull their heads out of their asses and stop ruining Windows. I'm close to just quitting Win 11 and installing Ubuntu, which I can at least configure to look the way I want it to. 😔 |
Would that help? how? |
I believe it may, from what I gathered, the built in emoji font uses vectors in COLR/CPAL format and they render just fine (anti-aliased and all that). Windows seems to have problems rendering images within fonts. It's likely a half-assed implementation on Microsoft's part and not a problem with the font itself, but the result is jagged.
Agreed. Windows has been on a downward spiral for the last decade. I actually tried switching, and as a Windows power user, I liked KDE's interface (Kubuntu) much more, but it wasn't as stable as I would've liked, especially with Nvidia drivers. But the emoji looked superb. :) |
What would be really help, is if Microsoft would open source the script to build the official font - then we could go ahead with a fork and build one or more replacement fonts the way they intended. |
Why don't check the offical way from Google? That might be better. |
They build 7 different versions of the font - one of them named as "WindowsCompatible", I'm not sure what that means. Do you think it would it possible to just modify their build script and change the font name/family/description to fool Windows into thinking it's the same font? (I'm not really Python savvy.) |
Sorry that I might wrong. |
Or try to build font manually:
Just that, but I haven't tried it, don't know if that works. |
According to the OpenType wikipedia article:
This is what we want, I think - vectors, not bitmaps. It does look like Nanoemoji supports two versions of COLR, which (from my limited understanding) should imply support for CPAL, which (as I understand it) goes together with COLR. It might be worth a try - let me put this at the bottom of my infinite to-do list. 😅 |
Same issue here, I just installed it and while I think I'll be keeping the emojis since they're still better, they nevertheless are low resolution unless you zoom in. |
The problem isn't the resolution - they're actually pretty high resolution. But yeah, the look bad, even on a 4K monitor - the "😄" emoji actually looks like it's crying on my screen. The problem is bitmap-based emoji are rendered without anti-aliasing on Windows. Barring they fix that (which they won't, because their own emoji are vector-based) the only way to get a sane set of emoji on Windows is figure out how to build a Window-compatible vector-based version. The only practical way to do that would be if Microsoft would open-source the build-scripts for the emoji font - but they haven't given any indication that they will, so please go and comment/upvote that issue. I mean, you could try to replicate what they've probably done, with a lot of guesswork and experimentation, but I'm not sure anyone has that kind of time or patience just to get back a useful set of emoji... personally, I've found myself reverting to old school |
lol I was referring to how they appear low resolution, not how they are low resolution (since they aren't). I noticed that if I zoom into a website, the quality improves.
Could this somehow be manually implemented?
I mostly use Ubuntu so it's not a huge problem for me but I feel you. |
Yes - Microsoft did it, so we can too. Probably the best source of reference is Google's Noto Emoji project, which has build scripts for vector fonts: https://github.com/googlefonts/noto-emoji If you could alter this to emit a font with the right family name, you might already have something that works. (I suck at Python.) |
It might be literally one line of code 😂 I've had zero good experiences even running python apps, so I didn't even want to look - but if it's really only a matter of getting the script running and changing a few lines, I might actually take a look... 🤔 |
I'm also not very experienced with Python, but that's very interesting. How exactly does it work? I'm picking up that you generate a vector version of the Noto emojis and name them as Windows' emojis and then what? Are you done or do you have to do another step? Depending how complicated it is, I might try it myself as a learning experience with Python. |
I don't even think you'd need to do that - as far as I understand, the emoji in the resulting file don't have names, just Unicode character codes. Best I can figure, it's a matter of getting the Windows compatible version of the font emitted with the correct font family name, I just spent 3 hours trying to do that, ha ha - it's a complete circus of missing dependencies and written directions that may have worked at some point. It's what I expected. Very Python. 🙄 |
If you get as far as I did and actually get some part of this to run, note that, despite the variable I mentioned, the font-name appears to be hard coded into I'm also not sure where the It's all very, very Python. Good luck, have fun. |
Here's as far as I got with a
This is based on the instructions in I'm out of steam, but let me know if you get anywhere with this... |
Sounds complicated... I've been busy, so I have no idea if I'll be able to try it, but I'll let you know if I do. |
When rendered in Chrome or select few supported apps, the icons are very jagged. It looks like they're downscaled from a larger image using the nearest neighbor filter:
![image](https://private-user-images.githubusercontent.com/4263742/260764399-904cc239-95f8-40e5-a0e2-da02b09798f2.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkyMDQ5MTAsIm5iZiI6MTczOTIwNDYxMCwicGF0aCI6Ii80MjYzNzQyLzI2MDc2NDM5OS05MDRjYzIzOS05NWY4LTQwZTUtYTBlMi1kYTAyYjA5Nzk4ZjIucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI1MDIxMCUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNTAyMTBUMTYyMzMwWiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9MDA1ODYzZDI4MzhjNjllMzc3NzgzYTY1ZjEyYjVhMmQ2NDg4YTM5Yzg1MmMxNDZkOTgxNDRkNzQ1M2MwNjViNiZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QifQ.LQ1Hvmf9_xK5eYxW0xQAxn_h51ePZr2RpA7xWpIqaQE)
![image](https://private-user-images.githubusercontent.com/4263742/260764475-90c5ee21-ec59-4f9f-bc80-99b3b369d25b.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkyMDQ5MTAsIm5iZiI6MTczOTIwNDYxMCwicGF0aCI6Ii80MjYzNzQyLzI2MDc2NDQ3NS05MGM1ZWUyMS1lYzU5LTRmOWYtYmM4MC05OWIzYjM2OWQyNWIucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI1MDIxMCUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNTAyMTBUMTYyMzMwWiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9MDMwMGI2MDU5ZGE3OTM2MTY2MGE3ZmI0ZDY5ZDM2ZjIyNDAyNmE5NzE5NmEyNjQ2ZjUwNTJiOWE0YTFiMjhjMSZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QifQ.Q6JbnVnrbrn3Sjc4pSDLXCH9gb1kP4brjppGTjY4Q0g)
I wanted to replace the ugly built in icons, but this defeats the purpose somewhat. Would it be possible to use the actual vectors from Noto Emoji?
The text was updated successfully, but these errors were encountered: