In short, you need two images, one that has the static background, and another that has the static background merged with the active game objects.
The static background image is only generated once, it contains the terrain of your map.
The merged image is generated every 500 milliseconds or so, you don' t need to do it real-time. Here you simply draw all the game objects you wish to show on the minimap, most commonly just a filled rectangle.
This is quite easy to do.
In slick you can easily create a Image and get it's graphics context to draw to, e.g.:
1 2 3 4 5 6
| Image img = new Image(200,200); Graphics g = img.getGraphics(); g.setColor(Color.red); g.fillRect(0,0,200,200); g.flush(); img.draw(); |