Thats odd that BufferedImage/ImageIO was slower... one thing you might consider is whether your images were larger than 256x256 (or any other dimensions with > 65536 pixels), it probably won't get accelerated if its this big. The other thing is that it doesn't matter if the image is accelerated if you rotate it (or scale it or draw it with translucency) because it loses its acceleration.
I'm guessing you are using jdk 1.5 (or higher), so this may not be an issue but if you plan on making your game compatible for 1.4 users then you should know that just loading the image with ImageIO won't accelerate it. Instead you need to obtain a GraphicsConfiguration object and use its createCompatibleImage method to obtain a managed BufferedImage. From there you can draw your loaded image onto the managed image you created (Graphics2D g2 = myManagedImage.createGraphics()
. I'm sure you can find a more complete example by using the search feature on these forums if you need to.
I'm not sure its safe to rely on the opengl pipeline as of 1.5, but maybe someone else will say differently
If you don't absolutely require the rotation of large (or a bunch of) images in real-time then java2d should be sufficient, but otherwise you might want to look into using an opengl binding (lwjgl/jogl).
In eclipse you can go to the run options->arguments tab and enter vm arguments.