hhannine / superpaper

A cross-platform multi monitor wallpaper manager.
MIT License
1.14k stars 46 forks source link

[Request] Scaling and Fit options for Slideshow #92

Open da3dsoul opened 3 years ago

da3dsoul commented 3 years ago

The title pretty much says it. By scaling, I mean allow applying a scaling filter, like bilinear, bicubic, lancoz, ML anime upscalers, etc. In all seriousness, bilinear, bicubic, and lancoz are supported by basically any library that knows how to open an image, so it'd probably be easy enough to resize/scale it and save a cached version for the wallpaper.

Fit is exactly what everything else calls it. Fit, Fill, Center, Stretch, etc. Personally, I just want letterboxing instead of cropping.

Thanks for all of the effort. These are little things that aren't enough to make me choose something else, as this is really well done for my needs, but they'd be nice.

hhannine commented 3 years ago

Thanks, I'll consider this. Lancoz scaling is already used if the wallpaper needs to be scaled.

I wonder if the other fitment types are something that people use? I can at least see the preference for letterboxing, even if it isn't for me. But tiling, centering, stretching have always seemed utterly unusable to me. Would you use the 'Fit' style with a spanned wallpaper that is covering multiple screens?

Implementing a proper support for all styles seems right now to be a bit involved, and as I have no personal interest to use any of them, I don't know if I will work on this.

da3dsoul commented 3 years ago

That's fair. Letterboxing on span and advanced span actually has been requested, I think. It could be an extension/preset for the Zoom and Positioning feature that was requested.

If you can point me at where I might look to start trying to implement this, I can take a shot at it.

hhannine commented 3 years ago

Yes, maybe that feasible. A problem that I had with the zoom and positioning thing was that it seemed to me to be very image specific, and I couldn't figure out a way to have it make any sense with a slideshow. I was thinking of making a zooming&crop tool that would allow the user to make a modified image that has the desired placement, instead of trying to work with temporary images.

I think a hacky implementation to switch to Fit only usage would only need to modify the resize_to_fill function in wallpaper_processing.py. Maybe could work if the filling logic is just changed, but it could have some undesired side-effects.

da3dsoul commented 3 years ago

I'll take a look, thanks. I agree that zoom and positioning are only relevant to the advanced span

da3dsoul commented 3 years ago

https://github.com/hhannine/superpaper/pull/93

joltman80 commented 2 years ago

I would also like to see "Fit" implemented. In my case, I have some images that are not "standard" resolutions (1440x900) and SuperPaper is stretching them to fit a single screen. This is causing the image to be pixelated. I would ideally like the image to be centered on the monitor and not stretched. If SP could also fill in the remainder of the background to be a color that's selectable would be fantastic. Thanks!