-
Notifications
You must be signed in to change notification settings - Fork 588
Add 20px, 40px bitmaps; Regenerate all icon bitmaps #498
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
base: master
Are you sure you want to change the base?
Conversation
without “super-resolution, then downsampling”
|
I subjectively believe that for non-integer ratio scaling, "scale up then downsample" is the more correct choice, while for integer ratio scaling, the direct result is good enough. Anyway, to avoid getting into bikeshedding, I'll upload a set of bitmaps rendered at a 1:1 scale. If you are satisfied with the 1:1 rendering result, I can replace the icons from the previous few commits, force-push to here tomorrow. (Or a more concise commit would be to not regenerate the existing bitmap.) |
|
I'm not opposed a downsampling approach for non-power-of-two sizes in principle if those turn out to work well, my observation was just that the bitmaps you pushed did not look good. (And, if I recall correctly, the screenshot I attached above was of a 64x64 bitmap, where this wouldn't even apply.) "Scale, then downsample" is also still a very general description and will depend a lot on what methods are used for the scaling and downsampling. Downsampling using a gaussian kernel will behave very differently from downsampling using a ringing kernel like Lanczos. I'd be interested in an exact description of how you generated those bitmaps and/or how you propose to. |
Yes, the two kenels I tried were I will try to switch to kernels with less pronounced ringing later. |
|
I see, that checks out. Neither Lanczos nor any magic kernel variant (setting aside all the other problems I have with the whole "magic kernel" story) are in any way suitable for downscaling. The way that most conventional resizing tools implement downscaling (by horizontally stretching the kernel by the downscaling factor) completely changes the kernel and makes downscaling completely different from upscaling. There is no reason why a kernel that works well for upscaling should work well for downscaling using this method. If you do want to use this form of convolutional downscaling, Hermite (b=c=0 bicubic) and Gaussian are generally agreed to be the best kernels. But, as I've said, I have yet to be convinced that downscaling is even beneficial at all here. |

Fix #315. Because it's been a long time, I'd like to repeat it: my motivation was to generate 20px bitmaps because a 16px toolbar was too small for me, while 24px was too large.
I then tried updating the existing bitmap sizes with similar code and found they looked slightly clearer (thanks to a good amount of ringing effect), so I'm posting those as well. Note that this PR did not touch the two icons mentioned in #496 to avoid conflicts. The current results are still far from perfect, mainly because text in small bitmaps is still blurry. For a truly excellent visual experience, I estimate we'll have to manually create those mini bitmap texts.
The new resolution added in this PR isn't limited to the single option. I welcome feedback from people using various resolutions on what icon sizes are most suitable for them.