On Sat, 8 Jan 2022 17:30:55 GMT, Michael Strauß <mstra...@openjdk.org> wrote:

>> `com.sun.javafx.iio.ImageStorage` currently ignores the MIME image subtype 
>> specified for images encoded in data URIs. This should be improved as 
>> follows:
>> 
>> 1. If the specified image subtype is not supported, an exception will be 
>> thrown.
>> 2. If the specified image subtype is supported, but the data contained in 
>> the URI is of a different (but also supported) image format, the image will 
>> be loaded and a warning will be logged. For example, if the MIME type is 
>> "image/jpeg", but the image data is PNG, the following warning will be 
>> generated:
>> 
>> 
>> Image format 'PNG' does not match MIME type 'image/jpeg' in URI 
>> 'data:image/jpeg;base64,iVBORw0KGgoAAA...AAAElFTkSuQmCC'
>> 
>> 
>> Also, the javadoc of `javafx.scene.image.Image` incorrectly states:
>> 
>>     94    * If a URL uses the "data" scheme, the data must be base64-encoded
>>     95    * and the MIME type must either be empty or a subtype of the
>>     96    * {@code image} type.
>> 
>> However, omitting the MIME type of a data URI is specified to imply 
>> "text/plain" (RFC 2397, section 2). Since the `com.sun.javafx.util.DataURI` 
>> class is implemented according to this specification, trying to load an 
>> image without MIME type correctly fails with an `ImageStorageException`: 
>> "Unexpected MIME type: text".
>> 
>> The solution is to fix the documentation:
>> 
>>       94    * If a URL uses the "data" scheme, the data must be 
>> base64-encoded
>>     - 95    * and the MIME type must either be empty or a subtype of the
>>     - 96    * {@code image} type.
>>     + 95    * and the MIME type must be a subtype of the {@code image} type.
>>     + 96    * The MIME type must match the image format of the data 
>> contained in
>>     + 97    * the URL. In case of a mismatch between MIME type and image 
>> format,
>>     + 98    * the image will be loaded if the image format can be determined 
>> by
>>     + 99    * JavaFX, and a warning will be logged.
>
> Michael Strauß has updated the pull request incrementally with one additional 
> commit since the last revision:
> 
>   Don't let EOFException bubble up

At least the following method do not need to remove the static modifier, but 
they do. Is there any benefit?

``` java
    public int getNumBands(ImageType type) {

-------------

PR: https://git.openjdk.java.net/jfx/pull/676

Reply via email to