I do that, here's the GL stuff I use :
// Setup a 2D projection
GL11.glMatrixMode (GL11.GL_PROJECTION);
GL11.glLoadIdentity ();
GL11.glOrtho (0, targetWidth, targetHeight, 0, 0, 1);
GL11.glDisable(GL11.GL_DEPTH_TEST);
GL11.glEnable(GL11.GL_TEXTURE_2D);
GL11.glMatrixMode (GL11.GL_MODELVIEW);
GL11.glLoadIdentity();
// Displacement trick for exact pixelization
GL11.glTranslatef(0.375f, 0.375f, 0);
Here's the load + render :
Texture tex = TextureLoader.getTexture("PNG", new FileInputStream("mydata/image.png"));
boolean gameRunning = true;
while (gameRunning) {
// perform game logic updates here
GL11.glBindTexture(GL11.GL_TEXTURE_2D, tex.getTextureID());
// render using OpenGL
GL11.glBegin(GL11.GL_QUADS);
GL11.glVertex3f(0,0,pos);
GL11.glVertex3f(100,0,pos);
GL11.glVertex3f(100,100,pos);
GL11.glVertex3f(0,100,pos);
GL11.glEnd();
// now tell the screen to update
Display.update();