RFR: 8342530: Specifying "@Nx" scaling level in ImageStorage should only load that specific level [v2]
Michael Strauß
mstrauss at openjdk.org
Fri May 16 18:00:57 UTC 2025
On Fri, 16 May 2025 07:03:38 GMT, Lukasz Kostyra <lkostyra at openjdk.org> wrote:
>> This follow-up change finishes the earlier changes to `ImageStorage.loadAll()` and adds support for loading specific scale requested in the input.
>>
>> `loadAll()` will now first check if the input path ends with a scaling level specified, and if that is the case it will attempt creating a Stream. If requested resource does not exist it will throw an Exception, skipping the rest of the load process. If the resource does _not_ have a scaled name in its path, it will continue loading as normal - looking for all scale levels, trying to load the main resource and falling back to trying to load "@1x" variant.
>>
>> Added tests to check the new `ImageTools.hasScaledName()` method + new behavior.
>
> Lukasz Kostyra has updated the pull request incrementally with one additional commit since the last revision:
>
> Replace hasScaledName logic with regex
modules/javafx.graphics/src/main/java/com/sun/javafx/iio/common/ImageTools.java line 55:
> 53: * Regex pattern for hasScaledName
> 54: */
> 55: private static final Pattern SCALED_FILE_PATTERN = Pattern.compile(".*@[1-9][0-9]?x(\\.[^\\.]+)?");
You can use a non-capturing group instead of a capturing group if you don't intend to retrieve its value:
Suggestion:
private static final Pattern SCALED_FILE_PATTERN = Pattern.compile(".*@[1-9][0-9]?x(?:\.[^\.]+)?");
-------------
PR Review Comment: https://git.openjdk.org/jfx/pull/1809#discussion_r2093474688
More information about the openjfx-dev
mailing list