Comments (5)
released with v1.5.6
from creevey.
OK I think I know what's going on here, but let me ask a couple questions. First, what are the steps you're taking for the Phoenix Slides comparison image? Is it (1) open the image in a slideshow, then (2) take a screenshot?
Now try this: (1) open the slideshow, (2) hit the '=' key to show the image at actual size, (3) hit the '*' key to go back to the default zoom level. When you do the comparison now, how does it look?
I think what's going on is that in regular slideshow usage, Phoenix Slides scales down images that are larger than the screen (using Image I/O's "thumbnail" API's, which I'm guessing you are correct that it does some sort of fast decompression). You can force Phoenix Slides to override this by zooming the image to a non-default scale factor. Once this happens, the app will continue to use this full size image at all scale factors.
If my guess is correct and zooming in and back out fixes the issue, it would be easy enough to add an option to always load the full size image for slideshows. It would be a tradeoff of speed and memory usage for better quality images. (I may even consider making this the default.)
from creevey.
Thanks for your comment. I think the issue is more complicated because there are two cases now 😅
FYI: I'm not doing the slide show function. I'm just opening the file directly in viewer mode.
Technical information about my setup beforehand
I use a 4K monitor (native resolution 3840x2160) in 2560x1440 HiDPI mode (this is the default setting for a 4K monitor in macOS). When I do fullscreen screenshots (using Skitch) they are 5120x2880 pixels in dimension.
Case 1: image much larger than screen resolution
If you download (button) the original image it's 8256x5504 pixels.
I've followed your instructions:
Now try this: (1) open the slideshow, (2) hit the '=' key to show the image at actual size, (3) hit the '*' key to go back to the default zoom level. When you do the comparison now, how does it look?
The result: It fixes the problem! 🥳 The image looks practically the same now in Phoenix, Preview and Xee3 (extremely minor difference but not visible to the human eye) and with perfect sharpness.
So it would be very appreciated to an additional option for this case (to always load the full image and downscale it).
Case 2: image smaller than my screen resolution
I've created a new cropped image with resolution 1800x1012. I will upload it here on github (should not be resized and original):
I've opened the image directly in Phoenix, Preview and Xee3 with actual size settings (no zoom in) and this is the result zoomed in into the eye region:
As you can see the problem with sharpness is still there but maybe not as pronounced as before. To double check it: It's also visible in real life by placing the windows side by side and not just on the HiDPI 5K screenshot.
My comments/thoughts
I don't know if this valuable (ignore it if not helpful):
Either something is wrong with the resolution handling or maybe the upscaling to the HiDPI screen (I should maybe do another test without HiDPI screen resolution?!)
OR
I've worked with JPEG software decompressors myself, they can be adjusted to various decompression quality levels. The dequantization can be stopped beforehand (which makes the decompressor faster) and then you get a less sharp decompressed JPEG back. Maybe it's not set to highest decompression level in your software (have not checked the code). Downside is a more blurry image (unfortunately a dealbreaker for me). Even commercial products using this trick like ACDsee for Mac (I would never use that program for that reason) ;)
from creevey.
So the second case may be related to the fact that Phoenix Slides was not taking advantage off all the pixels on your HiDPI screen. I think I've fixed both problems, if you want to try this version:
blyt.net/phxslides/phoenix-slides-155d1.dmg
Zooming in on the image (using '+' or '=' or a pinch gesture on the trackpad) will always load the full image, but for now in normal (non-zoomed) usage it will still scale down images that have significantly more pixels than your screen (but the quality of the downsampling should be much better). Please try this and let me know if it gives acceptable results!
from creevey.
Wow & thanks 👏👏👏
This new version is remarkable. I gave it a deeper test run and I think it's the ideal balance of quality and speed! It solved both test cases with a pleasing high quality image now!
Some more details
Case 1, larger than screen image
- Xee3: Took long time to load the 21MB JPEG (nothing visible till it fully loaded). On my system 14 seconds. Good quality at the end.
- Preview: Loaded a low quality (blurry) version and then takes a tremendous amount of time in the background to load the high quality version. It replaces the low quality version tile by tile. Total amount of loading time is longer than Xee3's 14 seconds! However quality wise it beats Phoenix Slides and Xee3 a little bit. You can see it in the photo grain in the white parts of the eyes if you look very closely. However the speed tradeoff of this approach is too much in my opinion. The balance of speed vs. quality is not good and you are stuck with a blurry image for a long time.
- Phoenix Slides: The fastest, it took only 1-3 seconds and quality is not distinguishable to Xee3 by my eye.
Quality wise I think all 3 look the same to my eye on the 4K monitor. The little bit more quality on the Preview App is a big nit picky and not worth the super long loading time.
Case 2, smaller than screen image
To make it short: I think they look the same to me with my eyes on the 4K monitor. However when I take screenshots it's 5K resolution and then there is a slight difference between the 3 programs. But this difference practically disappears on my screen native resolution with my eyes looking at it.
On the screenshot: Xee3 looks the most smoothened out and Preview the most sharpest. But Phoenix Slides has the perfect middle spot. Well done
I think you should release a new version with this fix! A big leap in JPEG display quality on HiDPI screens! And on a personal note: With this improvements I can finally replace my old friend Xee3 with Phoenix Slides after all those years! 🥹
from creevey.
Related Issues (20)
- Regression: animated gif are not animated anymore HOT 9
- Request: Set the default way to open pictures as window mode HOT 4
- Enhancement Request: Zoom keyboard HOT 2
- Enhancement Request: Use "Slideshow Window" for image info HOT 2
- Request add transition effect for slideshow
- Request: Sort by file type HOT 1
- bug/feature request - slideshow stops advancing after using left arrow HOT 3
- Request to have multiple Slideshow Window instead of one
- Request: optional folder tree pane instead column view HOT 1
- Request: Custom keymapping feature
- Request: Custom full screen mode that uses the notch area of macbooks HOT 3
- bug report: since 1.5.7 problem with sony arw files HOT 3
- Request: keyboard panning in zoomed mode HOT 2
- Bug: sometimes suddenly wrong Picture Rotation in Full-Screen Show after editing a photo in active folder
- Bug: some folders and sub items will not displayed HOT 5
- Request: Search/filter function
- Request: Improvements in window mode
- Request: remember last selected file for each directory
- Request: optionally show n/m in the right bottom HOT 2
- Request: Allow for even larger preview sizes HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from creevey.