Fix proposal: boolean flag & public API for JDK-8204060 - Disable smoothing at javafx.scene.canvas.GraphicsContext.drawImage()
Ambarish Rapte
ambarish.rapte at oracle.com
Tue Oct 16 17:56:22 UTC 2018
Hi All,
Below is documentation for the new APIs and a slight modification in the description of existing drawImage() APIs
New APIs setImageSmoothing() & isImageSmoothing()
*****************************************************************
setImageSmoothing () API
*****************************************************************
/**
* Sets the image smoothing flag.
* The default value is {@code true}.<br>
* Image smoothing is an <a href="#image-attr">Image attribute</a>
* used to enable or disable image smoothing for
* {@link #drawImage(javafx.scene.image.Image, double, double) drawImage(all forms)}
* as specified in the <a href="#attr-ops-table">Rendering Attributes Table</a>.<br>
* If image smoothing is {@code true}, images will be scaled using a higher
* quality filtering when transforming or scaling the source image to fit
* in the destination rectangle.<br>
* If image smoothing is {@code false}, images will be scaled without filtering
* (or by using a lower quality filtering) when transforming or scaling the
* source image to fit in the destination rectangle.
*
* @since 12
* @param imageSmoothing true to enable or false to disable smoothing.
* @defaultValue {@code true}
*/
public void setImageSmoothing(boolean imageSmoothing) {
//......
}
*****************************************************************
isImageSmoothing () API
*****************************************************************
/**
* Gets the current state of image smoothing.
* The default value is {@code true}.
*
* @since 12
* @return image smoothing state.
*/
public boolean isImageSmoothing() {
//......
}
*****************************************************************
Image smoothing attribute shall be added to GraphicsContext class docs, in the table "List of Rendering Attributes".
And reference to new image smoothing attribute shall be mentioned in the description of drawImage()
*****************************************************************
* <p>
* This method will be affected by any of the
* <a href="#comm-attr">global common</a>
+ * or <a href="#image-attr">image</a>
* attributes as specified in the
* <a href="#attr-ops-table">Rendering Attributes Table</a>.
* </p>
*****************************************************************
Regards,
Ambarish
-----Original Message-----
From: Kevin Rushforth
Sent: Tuesday, October 16, 2018 4:25 AM
To: Dan Howard <sproket at videotron.ca>; Ambarish Rapte <ambarish.rapte at oracle.com>; openjfx-dev at openjdk.java.net
Subject: Re: Fix proposal: boolean flag & public API for JDK-8204060 - Disable smoothing at javafx.scene.canvas.GraphicsContext.drawImage()
Yes, it should be "isImageSmoothing", thanks for catching this!
This looks good to me to other than that.
The only other comment is that when you write the docs, make sure you indicate that this applies to drawImage calls, both in the docs of the new setImageSmooth method, and in the docs of the drawImage calls.
Perhaps you post the proposed javadoc changes, since they will be needed for the CSR?
-- Kevin
On 10/15/2018 3:36 PM, Dan Howard wrote:
> Shouldn't it be "is" rather than "get" for boolean? Other than that,
> sounds good!
>
>
> On 10/15/2018 3:29 PM, Ambarish Rapte wrote:
>> Hi All,
>>
>>
>> This email is for discussion regarding the fix
>> https://bugs.openjdk.java.net/browse/JDK-8204060 .
>>
>>
>> Issue:
>>
>> Images drawn using javafx.scene.canvas .GraphicsContext::drawImage()
>> always apply filtering to the image.
>>
>>
>> Solution:
>>
>> javafx.scene.canvas.GraphicsContext should provide an option to
>> enable and disable smoothing.
>>
>>
>> Proposal:
>>
>> Adding a Boolean flag & APIs to control smoothing.
>>
>>
>> Add a boolean flag to control smoothing Add two public APIs
>>
>> public void setImageSmoothing(boolean imageSmoothing) {} to enable or
>> disable smoothing.
>> public boolean getImageSmoothing() {}
>>
>> If image smoothing is true, images will be scaled using a higher
>> quality filtering when transforming or scaling the source image to
>> fit in the destination rectangle.
>> If image smoothing is false, images will be scaled without filtering
>> (or by using a lower quality filtering) when transforming or scaling
>> the source image to fit in the destination rectangle.
>>
>>
>> Please provide your comments on the proposal.
>>
>>
>>
>> Regards,
>>
>> Ambarish
>>
>
More information about the openjfx-dev
mailing list