Hooman,
Did you notice the bug in my current release before or after asking that question?
I'll try to post a newer version soon with the bug fixed. If you are looking to image an individual map right now, you have to read it in as ./eden03.map. using eden03.map will cause an error because the program cannot find the relative directory. I've already fixed it locally on my machine and will plan to push soon.
Anyways, to answer your question:
The deciding factor in how long a render takes is how many pixels must be placed onto the final canvas, not how the initial scaling of the tilesets is accomplished. This is because we are scaling tilesets first, and then applying them to a canvas to form the map.
Rendering maps to 4x4 pixels per tile averages 0.142 seconds, which I think is quick enough for this application?
If you ever wanted to render the maps for display in a GUI at 1x1 pixel per tile, it would average 0.075 seconds per map, which would probably be fast enough? The problem is that even at 1x1 pixels per map, a large map like survaxen at 512x256 tiles takes on average 0.233 seconds per map, which might be too long for a GUI application?
We could speed up rendering large batches of low pixels per tile by caching different scales of the tiles so they didn't have to rescale each time another render is taken. This has some side effects though if you are going to render say both stock tileset maps and Greenworld tileset maps in the same session, since they use the same name for wells. However, at 0.14 seconds average for the default setting, I'm pretty happy and am not sure the juice is worth the squeeze.
The caching would likely have minimal effect on rendering very large maps. I'm not sure the answer there for speeding it up, but survaxen at full size is about 58 megabytes, so I'm not sure how fast it should be expected to be created at either? I'm thinking slow should be expected though.
As for quality of the scaling, I've been very pleased with it. I'm not a graphics artist though. Do you or someone else feel like they could be better quality after being scaled? I don't mind if you want to experiment with different settings. We could even offer a switch on the console command for it, but it didn't seem worth it to me.
And the metrics for you. Using my computer and a stopwatch (so could be more accurate, but good enough for broad strokes). A release compilation without being attached to a debugger. Did not try to control background applications.
Rendering the 79 stock maps with the current release + Judgement Day and Fractured Alliance. All maps existing inside .VOL files expect the two non-stock maps:
1x1 pixels per tile, 5.93 seconds, 0.075 seconds per map,
4x4 pixels per tile, 11.24 seconds, 0.142 seconds per map
8x8 pixels per tile, 24.92 seconds, 0.315 seconds per map
16x16 pixels per tile, 1 minute, 24.56 seconds, 1.07 seconds per map
32x32 pixels per tile, 10 minutes, 46.88 seconds, 8.19 seconds per map
9 survaxen maps (512x256 tiles) at 1x1 pixels per tile, 2.10 seconds, .233 seconds per map
-Brett