When working with BufferedImage using the setRGB and getRGB methods, I noticed two things:
the setRGB and getRGB methods can be incredibly slow on some systems (as much as two orders of magnitude slower than modifiyng the int[] array).
there are no guarantee that a getRGB following a setRGB will give back the same pixel you passed
This last point is basically pretty clear from the JavaDoc of setRGB, which states:
...For images with an IndexColorModel, the index with the nearest color is chosen.
Seen I can work directly in a BufferedImage's int[] pixels, which I can access to by doing, for example:
int[] a = ((DataBufferInt) tmp.getRaster().getDataBuffer()).getData();
I was wondering: are there any known drawbacks/gotchas when directly manipulating pixels in the int[]
?