-
Notifications
You must be signed in to change notification settings - Fork 0
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
Dynamic Downsampling #25
Comments
Now that downsampling is multi-threaded this feature can begin to be implemented. |
This is just my notes so good luck reading it.🤞 Every time the user zooms in, we upsample the image to a resolution equal to:
but the upsample resolution cannot exceed the original resolution of the image, essentially setting a cap. The image should only upsample / downsample once the user is done zooming in / out (more info below) and we should only have one of these operations going on at a time but we should also cancel an ongoing operation or a scheduled one if we have to schedule a new upsample / downsample operation. Also when zooming out the downsample should be scheduled a lot later than the upsample in the case the user would like to zoom in again for one quick glimpse. We only downsample in the first place to save on memory when detail is not important and also so high res images aren't overly sharpened. It's all about user experience and efficiency. reload image mechanismRight now if we were to implement this we would be calling We need a new function like
configWIP is my brain, I'll think about it after implementation of some of this. |
At the moment images are downsampled to around display resolution on image load so for example if we have an image that is
3840 x 2160
(4k) getting loaded but our display / monitor is only 1080p, roseate will automatically downsample that image to1920x1080
(plus some extra pixels).This is great until we start zooming into the image and notice all the clarity we have lost, so let's dynamically adjust the downsampling when the user zooms in/out.
However this will need to be done in the background hence we will need #24 to be completed first.
The text was updated successfully, but these errors were encountered: