Code: Select all
EnableExplicit
Procedure.s ImageHtml(Image.i)
Protected img_w.i
Protected img_h.i
Protected html_size.i
Protected *html
Protected px.i
Protected py.i
Protected pw.i
Protected ph.i
Protected *offset.Long
Protected color.i
Protected index.i
Protected buffer.s
If IsImage(Image)
If StartDrawing(ImageOutput(Image))
img_w = OutputWidth()
img_h = OutputHeight()
buffer = "<table border=0 cellspacing=0 cellpadding=0 bgcolor=#FFFFFF width=" + Str(img_w) + " height=" + Str(img_h) + ">" + #CRLF$
html_size = (img_h * (img_w * 88)) + 2
*html = AllocateMemory(html_size)
pw = img_w - 1
ph = img_h - 1
*offset = *html
For py = 0 To ph
CopyMemory(?str_tr_start,*offset,8)
*offset + 8
For px = 0 To pw
color = Point(px,py)
CopyMemory(?str_color_start,*offset,60)
*offset + 60
*offset\l = PeekL(?str_hex_table + (Red(color) << 2))
*offset + 4
*offset\l = PeekL(?str_hex_table + (Green(color) << 2))
*offset + 4
*offset\l = PeekL(?str_hex_table + (Blue(color) << 2))
*offset + 4
CopyMemory(?str_color_end,*offset,12)
*offset + 12
Next
CopyMemory(?str_tr_end,*offset,14)
*offset + 14
Next
StopDrawing()
buffer + PeekS(*html) + "</table>"
FreeMemory(*html)
ProcedureReturn buffer
EndIf
EndIf
ProcedureReturn #Null$
str_tr_start:
!db 0x3C,0x00,0x74,0x00,0x72,0x00,0x3E,0x00
str_tr_end:
!db 0x3C,0x00,0x2F,0x00,0x74,0x00,0x72,0x00,0x3E,0x00,0x0D,0x00,0x0A,0x00
str_color_start:
!db 0x3C,0x00,0x74,0x00,0x64,0x00,0x20,0x00,0x77,0x00,0x69,0x00,0x64,0x00,0x74,0x00
!db 0x68,0x00,0x3D,0x00,0x31,0x00,0x20,0x00,0x68,0x00,0x65,0x00,0x69,0x00,0x67,0x00
!db 0x68,0x00,0x74,0x00,0x3D,0x00,0x31,0x00,0x20,0x00,0x62,0x00,0x67,0x00,0x63,0x00
!db 0x6F,0x00,0x6C,0x00,0x6F,0x00,0x72,0x00,0x3D,0x00,0x23,0x00
str_color_end:
!db 0x3E,0x00,0x3C,0x00,0x2F,0x00,0x74,0x00,0x64,0x00,0x3E,0x00
str_hex_table:
!db 0x30,0x00,0x30,0x00,0x30,0x00,0x31,0x00,0x30,0x00,0x32,0x00,0x30,0x00,0x33,0x00
!db 0x30,0x00,0x34,0x00,0x30,0x00,0x35,0x00,0x30,0x00,0x36,0x00,0x30,0x00,0x37,0x00
!db 0x30,0x00,0x38,0x00,0x30,0x00,0x39,0x00,0x30,0x00,0x41,0x00,0x30,0x00,0x42,0x00
!db 0x30,0x00,0x43,0x00,0x30,0x00,0x44,0x00,0x30,0x00,0x45,0x00,0x30,0x00,0x46,0x00
!db 0x31,0x00,0x30,0x00,0x31,0x00,0x31,0x00,0x31,0x00,0x32,0x00,0x31,0x00,0x33,0x00
!db 0x31,0x00,0x34,0x00,0x31,0x00,0x35,0x00,0x31,0x00,0x36,0x00,0x31,0x00,0x37,0x00
!db 0x31,0x00,0x38,0x00,0x31,0x00,0x39,0x00,0x31,0x00,0x41,0x00,0x31,0x00,0x42,0x00
!db 0x31,0x00,0x43,0x00,0x31,0x00,0x44,0x00,0x31,0x00,0x45,0x00,0x31,0x00,0x46,0x00
!db 0x32,0x00,0x30,0x00,0x32,0x00,0x31,0x00,0x32,0x00,0x32,0x00,0x32,0x00,0x33,0x00
!db 0x32,0x00,0x34,0x00,0x32,0x00,0x35,0x00,0x32,0x00,0x36,0x00,0x32,0x00,0x37,0x00
!db 0x32,0x00,0x38,0x00,0x32,0x00,0x39,0x00,0x32,0x00,0x41,0x00,0x32,0x00,0x42,0x00
!db 0x32,0x00,0x43,0x00,0x32,0x00,0x44,0x00,0x32,0x00,0x45,0x00,0x32,0x00,0x46,0x00
!db 0x33,0x00,0x30,0x00,0x33,0x00,0x31,0x00,0x33,0x00,0x32,0x00,0x33,0x00,0x33,0x00
!db 0x33,0x00,0x34,0x00,0x33,0x00,0x35,0x00,0x33,0x00,0x36,0x00,0x33,0x00,0x37,0x00
!db 0x33,0x00,0x38,0x00,0x33,0x00,0x39,0x00,0x33,0x00,0x41,0x00,0x33,0x00,0x42,0x00
!db 0x33,0x00,0x43,0x00,0x33,0x00,0x44,0x00,0x33,0x00,0x45,0x00,0x33,0x00,0x46,0x00
!db 0x34,0x00,0x30,0x00,0x34,0x00,0x31,0x00,0x34,0x00,0x32,0x00,0x34,0x00,0x33,0x00
!db 0x34,0x00,0x34,0x00,0x34,0x00,0x35,0x00,0x34,0x00,0x36,0x00,0x34,0x00,0x37,0x00
!db 0x34,0x00,0x38,0x00,0x34,0x00,0x39,0x00,0x34,0x00,0x41,0x00,0x34,0x00,0x42,0x00
!db 0x34,0x00,0x43,0x00,0x34,0x00,0x44,0x00,0x34,0x00,0x45,0x00,0x34,0x00,0x46,0x00
!db 0x35,0x00,0x30,0x00,0x35,0x00,0x31,0x00,0x35,0x00,0x32,0x00,0x35,0x00,0x33,0x00
!db 0x35,0x00,0x34,0x00,0x35,0x00,0x35,0x00,0x35,0x00,0x36,0x00,0x35,0x00,0x37,0x00
!db 0x35,0x00,0x38,0x00,0x35,0x00,0x39,0x00,0x35,0x00,0x41,0x00,0x35,0x00,0x42,0x00
!db 0x35,0x00,0x43,0x00,0x35,0x00,0x44,0x00,0x35,0x00,0x45,0x00,0x35,0x00,0x46,0x00
!db 0x36,0x00,0x30,0x00,0x36,0x00,0x31,0x00,0x36,0x00,0x32,0x00,0x36,0x00,0x33,0x00
!db 0x36,0x00,0x34,0x00,0x36,0x00,0x35,0x00,0x36,0x00,0x36,0x00,0x36,0x00,0x37,0x00
!db 0x36,0x00,0x38,0x00,0x36,0x00,0x39,0x00,0x36,0x00,0x41,0x00,0x36,0x00,0x42,0x00
!db 0x36,0x00,0x43,0x00,0x36,0x00,0x44,0x00,0x36,0x00,0x45,0x00,0x36,0x00,0x46,0x00
!db 0x37,0x00,0x30,0x00,0x37,0x00,0x31,0x00,0x37,0x00,0x32,0x00,0x37,0x00,0x33,0x00
!db 0x37,0x00,0x34,0x00,0x37,0x00,0x35,0x00,0x37,0x00,0x36,0x00,0x37,0x00,0x37,0x00
!db 0x37,0x00,0x38,0x00,0x37,0x00,0x39,0x00,0x37,0x00,0x41,0x00,0x37,0x00,0x42,0x00
!db 0x37,0x00,0x43,0x00,0x37,0x00,0x44,0x00,0x37,0x00,0x45,0x00,0x37,0x00,0x46,0x00
!db 0x38,0x00,0x30,0x00,0x38,0x00,0x31,0x00,0x38,0x00,0x32,0x00,0x38,0x00,0x33,0x00
!db 0x38,0x00,0x34,0x00,0x38,0x00,0x35,0x00,0x38,0x00,0x36,0x00,0x38,0x00,0x37,0x00
!db 0x38,0x00,0x38,0x00,0x38,0x00,0x39,0x00,0x38,0x00,0x41,0x00,0x38,0x00,0x42,0x00
!db 0x38,0x00,0x43,0x00,0x38,0x00,0x44,0x00,0x38,0x00,0x45,0x00,0x38,0x00,0x46,0x00
!db 0x39,0x00,0x30,0x00,0x39,0x00,0x31,0x00,0x39,0x00,0x32,0x00,0x39,0x00,0x33,0x00
!db 0x39,0x00,0x34,0x00,0x39,0x00,0x35,0x00,0x39,0x00,0x36,0x00,0x39,0x00,0x37,0x00
!db 0x39,0x00,0x38,0x00,0x39,0x00,0x39,0x00,0x39,0x00,0x41,0x00,0x39,0x00,0x42,0x00
!db 0x39,0x00,0x43,0x00,0x39,0x00,0x44,0x00,0x39,0x00,0x45,0x00,0x39,0x00,0x46,0x00
!db 0x41,0x00,0x30,0x00,0x41,0x00,0x31,0x00,0x41,0x00,0x32,0x00,0x41,0x00,0x33,0x00
!db 0x41,0x00,0x34,0x00,0x41,0x00,0x35,0x00,0x41,0x00,0x36,0x00,0x41,0x00,0x37,0x00
!db 0x41,0x00,0x38,0x00,0x41,0x00,0x39,0x00,0x41,0x00,0x41,0x00,0x41,0x00,0x42,0x00
!db 0x41,0x00,0x43,0x00,0x41,0x00,0x44,0x00,0x41,0x00,0x45,0x00,0x41,0x00,0x46,0x00
!db 0x42,0x00,0x30,0x00,0x42,0x00,0x31,0x00,0x42,0x00,0x32,0x00,0x42,0x00,0x33,0x00
!db 0x42,0x00,0x34,0x00,0x42,0x00,0x35,0x00,0x42,0x00,0x36,0x00,0x42,0x00,0x37,0x00
!db 0x42,0x00,0x38,0x00,0x42,0x00,0x39,0x00,0x42,0x00,0x41,0x00,0x42,0x00,0x42,0x00
!db 0x42,0x00,0x43,0x00,0x42,0x00,0x44,0x00,0x42,0x00,0x45,0x00,0x42,0x00,0x46,0x00
!db 0x43,0x00,0x30,0x00,0x43,0x00,0x31,0x00,0x43,0x00,0x32,0x00,0x43,0x00,0x33,0x00
!db 0x43,0x00,0x34,0x00,0x43,0x00,0x35,0x00,0x43,0x00,0x36,0x00,0x43,0x00,0x37,0x00
!db 0x43,0x00,0x38,0x00,0x43,0x00,0x39,0x00,0x43,0x00,0x41,0x00,0x43,0x00,0x42,0x00
!db 0x43,0x00,0x43,0x00,0x43,0x00,0x44,0x00,0x43,0x00,0x45,0x00,0x43,0x00,0x46,0x00
!db 0x44,0x00,0x30,0x00,0x44,0x00,0x31,0x00,0x44,0x00,0x32,0x00,0x44,0x00,0x33,0x00
!db 0x44,0x00,0x34,0x00,0x44,0x00,0x35,0x00,0x44,0x00,0x36,0x00,0x44,0x00,0x37,0x00
!db 0x44,0x00,0x38,0x00,0x44,0x00,0x39,0x00,0x44,0x00,0x41,0x00,0x44,0x00,0x42,0x00
!db 0x44,0x00,0x43,0x00,0x44,0x00,0x44,0x00,0x44,0x00,0x45,0x00,0x44,0x00,0x46,0x00
!db 0x45,0x00,0x30,0x00,0x45,0x00,0x31,0x00,0x45,0x00,0x32,0x00,0x45,0x00,0x33,0x00
!db 0x45,0x00,0x34,0x00,0x45,0x00,0x35,0x00,0x45,0x00,0x36,0x00,0x45,0x00,0x37,0x00
!db 0x45,0x00,0x38,0x00,0x45,0x00,0x39,0x00,0x45,0x00,0x41,0x00,0x45,0x00,0x42,0x00
!db 0x45,0x00,0x43,0x00,0x45,0x00,0x44,0x00,0x45,0x00,0x45,0x00,0x45,0x00,0x46,0x00
!db 0x46,0x00,0x30,0x00,0x46,0x00,0x31,0x00,0x46,0x00,0x32,0x00,0x46,0x00,0x33,0x00
!db 0x46,0x00,0x34,0x00,0x46,0x00,0x35,0x00,0x46,0x00,0x36,0x00,0x46,0x00,0x37,0x00
!db 0x46,0x00,0x38,0x00,0x46,0x00,0x39,0x00,0x46,0x00,0x41,0x00,0x46,0x00,0x42,0x00
!db 0x46,0x00,0x43,0x00,0x46,0x00,0x44,0x00,0x46,0x00,0x45,0x00,0x46,0x00,0x46,0x00
EndProcedure
Global time.q
Global txt.s
CreateImage(0, 50, 50, 24, #White)
time = ElapsedMilliseconds()
txt = ImageHtml(0)
MessageRequester("Done",Str(ElapsedMilliseconds() - time) + "ms" )
;Debug txt
I also changed the formating slightly so the output looks nicer.