ID:2210082
 
(See the best response by Dragonpearl123.)
I'm almost positive this has been done before.
I am trying to export my map file as a png or jpeg
Can anyone please point me in the right direction?

Thank you
The best solution would be to set your client.view to 31 and take screenshots using F2 and stick them together in gimp.

Alternatively, there's This
Best response
proc
GetMapImage(zlevel=1,size=1)
var x_size = size * world.maxx
var y_size = size * world.maxy
while(x_size>4096){size--;x_size = size * world.maxx}
while(y_size>4096){size--;y_size = size * world.maxy}
var/icon/img = new('A.dmi'),list/Tiles = list()
img.Crop(1,1,world.maxx*size,world.maxy*size)
world<<"[world.maxx]x[world.maxy]"
for(var/Y=1 to world.maxy)
for(var/X=1 to world.maxx)
var/turf/T = locate(X,Y,zlevel)
if(!Tiles.Find("[T.icon][T.icon_state]"))
var/icon/A = new(T.icon,T.icon_state,T.dir,1)
A.Scale(size,size)
img.Blend(A,ICON_OVERLAY,X*size,Y*size)
Tiles["[T.icon][T.icon_state]"] += A
else img.Blend(Tiles["[T.icon][T.icon_state]"],ICON_OVERLAY,X*size,Y*size)
for(var/obj/O in T.contents)
if(!Tiles.Find("[O.icon][O.icon_state]"))
var/icon/B = new(O.icon,O.icon_state,O.dir,1)
B.Scale(size,size)
img.Blend(B,ICON_OVERLAY,X*size,Y*size)
Tiles["[O.icon][O.icon_state]"] += B
else img.Blend(Tiles["[O.icon][O.icon_state]"],ICON_OVERLAY,X*size,Y*size)
return img

mob/verb/Test(n as num)
src<<ftp(GetMapImage(zlevel=1,size=n),"Pie.png")

Read the full discussion here.
thank you so much!

I was able to modify it to fit specific a levels as well as map zones instead of entire maps

I really appreciate it thank you so much!
Here is what I did :
/*
mx = start x
my = start y
Mx = end x
My = end y

1,1,1 to 10,10,1 would be
mx= 1
my=1
Mx=10
My=10
*/



proc
GetMapImage(zlevel=1,size=1,mx,my,Mx,My)
var x_size = size * Mx
var y_size = size * My
while(x_size>4096){size--;x_size = size * Mx}
while(y_size>4096){size--;y_size = size * My}
var/icon/img = new('_flat_Blank.dmi'),list/Tiles = list()
img.Crop(mx,my,Mx*size,My*size)
world<<"Generating [Mx-mx]x[My-my]"
for(var/Y=my to My)
for(var/X=mx to Mx)
var/turf/T = locate(X,Y,zlevel)
if(!Tiles.Find("[T.icon][T.icon_state]"))
var/icon/A = new(T.icon,T.icon_state,T.dir,1)
A.Scale(size,size)
img.Blend(A,ICON_OVERLAY,X*size,Y*size)
Tiles["[T.icon][T.icon_state]"] += A
else img.Blend(Tiles["[T.icon][T.icon_state]"],ICON_OVERLAY,X*size,Y*size)
for(var/obj/O in T.contents)
if(!Tiles.Find("[O.icon][O.icon_state]"))
var/icon/B = new(O.icon,O.icon_state,O.dir,1)
B.Scale(size,size)
img.Blend(B,ICON_OVERLAY,X*size,Y*size)
Tiles["[O.icon][O.icon_state]"] += B
else img.Blend(Tiles["[O.icon][O.icon_state]"],ICON_OVERLAY,X*size,Y*size)
return img
//pay attention to the order you input the numbers. Zlevel first, then Size, then locations
mob/verb/Test(a as num,b as num, c as num, d as num, e as num,f as num)
src<<ftp(GetMapImage(zlevel=a,size=b,mx=c,my=d,Mx=e,My=f),"Pie.png")