[OpenJDK 2D-Dev] Provide access to data offset in WritableRaster in Java 9

Phil Race philip.race at oracle.com
Thu Jul 13 19:18:14 UTC 2017


Hello,

Yes this is the right list, and my reply on jigsaw-dev stands  :-

Sounds like you were accessing jdk internals and found that you
mostly can do away with that except for sub-images.

What you should really do is file an issue at bugs.java.com as 
client-libs/2d for cat/subcat.

If this had been raised earlier in JDK 9 development - we could have 
looked into
it in time. Now it will have to wait for a follow on release.

-phil.

On 7/13/2017 12:13 PM, Peter A wrote:
> Apologies since this probably not the correct list, but I was 
> referenced here from another Java list. I've actually been getting 
> bounced around to a few mailing lists. I'm hopeful that this is the 
> right now!
>
> Background:
> The high level API in a BufferedImage is very very very slow.  To get 
> around that problem, in previous versions of Java, the internal 
> rasters which were defined in sun.awt.image were accessed.   Doing so 
> enabled real-time computer vision in Java.
>
> Problem:
> Accessing the low level Rasters is no longer practical in Java 9.  
> After this problem was reported by one of my users I looked into it 
> and *almost* found a work around  Unfortunately the higher level 
> WritableRaster does not provide access to the offset inside its 
> internal data array.   This makes processing of subimages impossible.  
> My suspicion is that it is most likely an oversight because it 
> provides access to every other piece of information needed and the raw 
> data.    It would be great if getDataOffset() could be moved into 
> WritableRaster or one of its parents instead of being hidden in 
> children of WritableRaster which are no longer accessible.
>
> Just to clarify the raw arrays are stored inside of a DataBuffer and 
> that data structure contains an offset. This offset is always set to 
> zero and the offset inside of WritableRaster is what is needed, 
> e.g. IntegerInterleavedRaster.getDataOffsets().
>
> Thanks,
> - Peter
>
> -- 
> "Now, now my good man, this is no time for making enemies."    — 
> Voltaire (1694-1778), on his deathbed in response to a priest asking 
> that he renounce Satan.




More information about the 2d-dev mailing list