Bug 503454

Summary: Use smooth upscaling at not-enormous zoom levels, like Gwenview does
Product: [Applications] Koko Reporter: Michael <kde>
Component: GeneralAssignee: Unassigned bugs <unassigned-bugs-null>
Status: RESOLVED FIXED    
Severity: wishlist CC: nate, olib141
Priority: NOR    
Version First Reported In: 25.04.0   
Target Milestone: ---   
Platform: Neon   
OS: Linux   
Latest Commit: Version Fixed In:
Sentry Crash Report:

Description Michael 2025-04-28 00:35:21 UTC
STEPS TO REPRODUCE

1. Open a photo, especially an older one from the early 2000's that is low resolution, like 1280x960
2. Zoom in on it with the mouse wheel, even two magnification steps


OBSERVED RESULT

Can see that the image becomes heavily pixelated and unsatisfying to view.


EXPECTED RESULT

Image should be filtered and smooth. This is a photo viewing app, not a pixel editor.


SOFTWARE/OS VERSIONS

Operating System: KDE neon 6.3
KDE Plasma Version: 6.3.4
KDE Frameworks Version: 6.13.0
Qt Version: 6.8.3
Kernel Version: 6.11.0-24-generic (64-bit)
Graphics Platform: Wayland
Processors: 16 × AMD Ryzen 7 6800H with Radeon Graphics
Memory: 30.6 GiB of RAM
Graphics Processor 1: AMD Radeon 680M
Graphics Processor 2: NVIDIA GeForce RTX 3050 Ti Laptop GPU
Comment 1 Bug Janitor Service 2025-07-21 20:14:39 UTC
A possibly relevant merge request was started @ https://invent.kde.org/graphics/koko/-/merge_requests/202
Comment 2 Oliver Beard 2025-07-22 12:54:26 UTC
Git commit cd6646f905e4ccdd203ecacd9315fa98020aa135 by Oliver Beard.
Committed on 22/07/2025 at 12:52.
Pushed by olib into branch 'master'.

RasterImageDelegate: Only stop being smooth at >= 400%

This matches Gwenview's behaviour: when the image is zoomed to 400% or greater, the image becomes pixellated.

The old behaviour was only to apply smooth & mipmapping when zoomed out (< 100%).

In order to prevent reloading the image (which causes a black frame), mipmap should not change. It has no effect unless zoomed out anyway.

retainWhileLoading would help, but causes noisy warning output. Either way, we should only have to load the image once, so masking reloading is not really ideal.

M  +7    -5    src/qml/imagedelegate/RasterImageDelegate.qml

https://invent.kde.org/graphics/koko/-/commit/cd6646f905e4ccdd203ecacd9315fa98020aa135