Hi,
As side-mentioned in (likely bogus) #146 issue, Image Viewer app seem to be rendering images using fast 1-bit mode, making them look worse than they could be, at least on Xteink X4 screen, and worse than e.g. on sleep screen.
I've tried quickly copying code for doing 2-bit rendering with half-refresh mode from SleepState::renderBitmapSleepScreen, and nothing seem to break, just renders are significantly slower, but are able to display much more detail in grayscale images, if they need it, so:
-
Maybe there can be an option to enable that mode for Image Viewer app?
It would be kinda similar to anti-aliased text option, I think, though Image Viewer has its own settings menu for it.
-
Or maybe it can just always use that mode?
Since black-and-white image seem to fade-in pretty much instantly with rendering like in SleepState::renderBitmapSleepScreen does, there doesn't seem to be much extra delay for seeing same image (if any), but then half-second later you also get nicer more detailed version (similar to how it's done for anti-aliased text too, I think).
-
Maybe more fancy way to do it can be to do extra steps for grayscale rendering after like a second delay?
Idea is so that it won't interfere with fast-flipping to the next image, if that is what user is doing, only "enhancing" image after such short delay.
This might be more code to implement, but if enabling such delay is configurable, can be more useful to set it (to give more/less time to quickly filp through images depending on use-case), rather than have simpler boolean 1bit vs immediate-2bit option.
Also I don't know the reason for why this is not used, except an obvious faster rendering - could be there's some other undesirable side-effect of course (maybe let me know if there is, would be interested to know as well).
Cheers!
P.S.
Patch that I've used to make it work as described in the second "always use 2-bit mode" option can be found here - https://gist.github.com/mk-fg/cd56a103caae5e1f96e48aad3f6c050e
Though it's probably not very useful, as this routine can likely be abstracted in a more appropriate place, and whole change is a trival copy-paste to begin with.
Also I think due to only calling button render once, there might be ghosting on those buttons when switching away from the app, with this particular simple patch.
Hi,
As side-mentioned in (likely bogus) #146 issue, Image Viewer app seem to be rendering images using fast 1-bit mode, making them look worse than they could be, at least on Xteink X4 screen, and worse than e.g. on sleep screen.
I've tried quickly copying code for doing 2-bit rendering with half-refresh mode from SleepState::renderBitmapSleepScreen, and nothing seem to break, just renders are significantly slower, but are able to display much more detail in grayscale images, if they need it, so:
Maybe there can be an option to enable that mode for Image Viewer app?
It would be kinda similar to anti-aliased text option, I think, though Image Viewer has its own settings menu for it.
Or maybe it can just always use that mode?
Since black-and-white image seem to fade-in pretty much instantly with rendering like in SleepState::renderBitmapSleepScreen does, there doesn't seem to be much extra delay for seeing same image (if any), but then half-second later you also get nicer more detailed version (similar to how it's done for anti-aliased text too, I think).
Maybe more fancy way to do it can be to do extra steps for grayscale rendering after like a second delay?
Idea is so that it won't interfere with fast-flipping to the next image, if that is what user is doing, only "enhancing" image after such short delay.
This might be more code to implement, but if enabling such delay is configurable, can be more useful to set it (to give more/less time to quickly filp through images depending on use-case), rather than have simpler boolean 1bit vs immediate-2bit option.
Also I don't know the reason for why this is not used, except an obvious faster rendering - could be there's some other undesirable side-effect of course (maybe let me know if there is, would be interested to know as well).
Cheers!
P.S.
Patch that I've used to make it work as described in the second "always use 2-bit mode" option can be found here - https://gist.github.com/mk-fg/cd56a103caae5e1f96e48aad3f6c050e
Though it's probably not very useful, as this routine can likely be abstracted in a more appropriate place, and whole change is a trival copy-paste to begin with.
Also I think due to only calling button render once, there might be ghosting on those buttons when switching away from the app, with this particular simple patch.