This is the best way to scale a Image in Java(you can change of course some of the parameters and so on) ->
https://github.com/Danny02/DarwinsBox/blob/master/Util/src/main/java/darwin/util/image/ImageUtil2.javaScaling images at startup to the desired size is always good, because you can use better scaling functions.
There is a bunch of functions which can be used to scale an image, from fast and low quality to slow and high quality.
So it is of course best to not need any scaling at run-time at all. So scale all your images with the most expensive functions at startup to get the best visuals.
There are of course always some corner cases for which this rule doesn't fully apply.