[OpenJDK 2D-Dev] RFR: 8166038 BufferedImage methods getTileGridXOffset() and getTileGridYOffset() return a non 0 value for sub images

Sergey Bylokhov Sergey.Bylokhov at oracle.com
Tue Jul 28 04:26:02 UTC 2020


The new version of the fix:

Bug: https://bugs.openjdk.java.net/browse/JDK-8166038
Fix: http://cr.openjdk.java.net/~serb/8166038/webrev.02

In the new version, the test was updated based on the feedback.

On 01.04.2020 19:51, Sergey Bylokhov wrote:
> Hello.
> Please review the fix for jdk/client.
> 
> Bug: https://bugs.openjdk.java.net/browse/JDK-8166038
> Fix: http://cr.openjdk.java.net/~serb/8166038/webrev.00
> 
> The fix contributed by Martin Desruisseaux.
> 
> Initial discussion about the bug:
> https://mail.openjdk.java.net/pipermail/2d-dev/2020-February/010576.html
> 
> Implementation of getTileGridXOffset() and getTileGridXOffset() in
> BufferedImage seems in contradiction with specification. The
> RenderedImage specification said:
> 
>      Returns the X offset of the tile grid relative to the origin, i.e.,
>      the X coordinate of the upper-left pixel of tile (0, 0). (Note that
>      tile (0, 0) may not actually exist.)
> 
> Since BufferedImage has only one tile, always at index (0,0), the (x,y)
> coordinates of the upper-left pixel of that tile should be the image
> (minX, minY), which is always (0,0) in a BufferedImage. Indeed
> BufferedImage.getTileGridXOffset() javadoc adds the following sentence:
> 
>      This is always zero.
> 
> But the BufferedImage implementation is:
> 
>      public int getTileGridXOffset() {
>           return raster.getSampleModelTranslateX();
>      }
> 
> Which does not always returns zero.
> 


-- 
Best regards, Sergey.



More information about the 2d-dev mailing list