Main sections
MEM2SPRITE()
ok% = MEM2SPRITE(pixels%[], num%, width%, height%)
Creates a sprite (analogous to LOADSPRITE) but from an array instead of a file. The colours must be specified in the format 0xAABBGGRR. A=Alpha, B=Blue, G=Green, R=Red. Alpha=ff is solid, 00=transparent.
Warning: READ/DATA might probably not read that large negative numbers.
// A Tree image
image$ = "" _
        + "....****...." _
        + "..**++++**.." _
        + ".*++++++++*." _
        + "*++++++++++*" _
        + "*++++++*+++*" _
        + "*++++++*+++*" _
        + "*+++++*++++*" _
        + ".*++*+++++*." _
        + "..********.." _
        + "....####...." _
        + "....####...." _
        + "...######..." _
        + ""
DIM colors$[4]
    colors$[0] = "."+INTEGER(0x00000000) // transparent
    colors$[1] = "+"+INTEGER(0xff00ff80) // green
    colors$[2] = "*"+INTEGER(0xff008000) // dark green
    colors$[3] = "#"+INTEGER(0xff0080ff) // orange
MakeImage(0, 12, image$, colors$[])
LOCAL pixl%[]
    SPRITE2MEM(pixl%[], 0) // get the sprite
LOCAL w%, h%
    GETSPRITESIZE 0, w,h
MEM2SPRITE(pixl[], 1, w,h) // make a copy to see if it worked
DRAWRECT 0,0,1000,1000,RGB(70,90,255)
SMOOTHSHADING FALSE
STRETCHSPRITE 0,  32,32,99,99
STRETCHSPRITE 1, 232,32,99,99
SHOWSCREEN
MOUSEWAIT
// ------------------------------------------------------------- //
// -=#  MAKEIMAGE  #=-
// Make a Sprite from a string
// usage:
// img$ =  ".+." _
//       + "+++" _
//         ".+."
// dim col$[2];
//     col$[0]="."++INTEGER(0xAABBGGRR) // alpha, blue, green, red
//     col$[1]="+"++INTEGER(0xff00ff80)
// ------------------------------------------------------------- //
FUNCTION MakeImage: num%, width%, image$, colors$[]
LOCAL x%, y%, c$, height%, pix%[]
    height = LEN(image$)/width
    DIM pix%[width*height]
    FOR y = 0 TO height-1
        FOR x = 0 TO width-1
            c$ = MID$(image$, x+y*width, 1)
            FOR i=0 TO BOUNDS(colors$[], 0)-1
                IF c$ = MID$(colors$[i], 0,1)
                    pix[x + y*width] = MID$(colors$[i], 1, 9)
                    BREAK
                ENDIF
            NEXT
        NEXT
    NEXT
    
    // Make Sprite from the image
    MEM2SPRITE(pix[], num%, width%, height%)
ENDFUNCTION // MAKEIMAGE

