1    type ImageMemory =
2        val width : u32
3        val height : u32
4        val format : ImageFormat
5        val bytes : Array<u8>
6    
7        def discard =
8            bytes.discard
9    
10       is Discard
11   
12   object ImageMemory =
13       def color (r : u8
14                  g : u8
15                  b : u8) =
16           let bytes = array_of r g b 255
17           ImageMemory 1 1 ImageFormat/Rgba bytes
18   
19       def load (path : String) =
20           let (width, height, bpp, bytes) = png/read path
21           let format = ImageFormat.from_bpp bpp
22           ImageMemory width height format bytes
23