I can think of two posible solutions for this:
1. Draw the whole map into some chached texture (render texture), then render visible portion of the map inside your windows and finally draw that whole texture scaled down to fit the minimap size. But this might not be nest solution especially if you have large map as you would require huge texture and scaling down such texture could lead to large inacuracies.
2. Calculate and store average color for each posible ingame tile. Then use that store information to determine the color value for each of the pixels for minimap texture (each tile is represented as single pixel). Since you are changing one tile at a time you would only need to update one pixel at a time.