Hi, I am trying to load an image and construct an instance of BufferedImage, unfortunately with no luck so far :( The image displayed shows some dots on the white background, maybe you could help me.
IntBuffer scratch = BufferUtils.createIntBuffer(1);
		IL.create();
		IL.ilGenImages(scratch);
		IL.ilBindImage(scratch.get(0));
		IL.ilLoadImage("./test/images/tga32.tga");
		ByteBuffer imageData = null;
		//		 get image attributes
		int width = IL.ilGetInteger(IL.IL_IMAGE_WIDTH);
		int height = IL.ilGetInteger(IL.IL_IMAGE_HEIGHT);
		int bpp = IL.ilGetInteger(IL.IL_IMAGE_BPP);
		int depth = IL.ilGetInteger(IL.IL_IMAGE_DEPTH);
		int bitsPerPixel = IL.ilGetInteger(IL.IL_IMAGE_BITS_PER_PIXEL);
		int bytesPerPixel = IL.ilGetInteger(IL.IL_IMAGE_BYTES_PER_PIXEL);
		imageData = BufferUtils.createByteBuffer(width
				* height * bpp);
		
		IL.ilCopyPixels(0, 0, 0, width, height, 1,
				IL.IL_RGBA, IL.IL_BYTE, imageData);		
		DataBufferSubClass db = new DataBufferSubClass(DataBuffer.TYPE_BYTE,bpp*width*height);
		db.setWrBuf(imageData);		
		
		ColorModel colorModel = new DirectColorModel(bitsPerPixel, 0x00ff0000, 0x0000ff00, 0x000000ff, 0xff000000);
		
		SampleModel sampleModel = colorModel.createCompatibleSampleModel(width,height);
		WritableRaster writableRaster = new MyWritableRaster(sampleModel, db, new Point(0,0));
		BufferedImage bufferedImage = new BufferedImage(colorModel, writableRaster, true, null);
import java.awt.Point;
import java.awt.image.DataBuffer;
import java.awt.image.SampleModel;
import java.awt.image.WritableRaster;
public class MyWritableRaster extends WritableRaster {
	public MyWritableRaster(SampleModel sampleModel, DataBuffer dataBuffer,
			Point origin) {
		super(sampleModel, dataBuffer, origin);
	}
}
import java.awt.image.DataBuffer;
import java.nio.ByteBuffer;
public class DataBufferSubClass extends DataBuffer {
	private ByteBuffer wrBuf;
	public void setWrBuf(ByteBuffer wrBuf) {
		this.wrBuf = wrBuf;
	}
	public DataBufferSubClass(int dataType, int size) {
		super(dataType, size);
	}
	public DataBufferSubClass(int dataType, int size, int numBanks) {
		super(dataType, size, numBanks);
	}
	public DataBufferSubClass(int dataType, int size, int numBanks, int offset) {
		super(dataType, size, numBanks, offset);
	}
	public DataBufferSubClass(int dataType, int size, int numBanks,
			int[] offsets) {
		super(dataType, size, numBanks, offsets);
	}
	public int getElem(int bank, int i) {
		return wrBuf.get(i);
	}
	public void setElem(int bank, int i, int val) {
		wrBuf.put(i, (byte) val);
	}
}
Thanks a lot!