An example of creating graphics using the vi text editor.
Start with an xpm (X Pixmap) file.
/* XPM */
static char *noname[] = {
/* width height ncolors chars_per_pixel */
"64 16 3 1",
/* colors */
"X c #FFF",
". c #000",
" c #BBB",
/* pixels */
"................................................................",
"................................................................",
"...XX..XXX .XXXX. XX .XXXXX.XXXX.XXX ....X.....X.XXX.XXXXX.X..X.",
"..X..X.X..X.X....X..X...X...X....X..X....X.....X..X....X...X..X.",
"..X....XXX..XXX..XXXX...X...XXX..X..X....X. X .X..X....X...XXXX.",
"..X..X.X..X.X....X..X...X...X....X..X....X X.X X..X....X...X..X.",
"...XX..X..X.XXXX.X..X...X...XXXX.XXX ....X ... X.XXX...X...X..X.",
"................................................................",
"....................XX.........XX..XXXXXXXX.....................",
".................... XX.......XX ..XXXXXXXX.....................",
"..................... XX.....XX ..... XX .......................",
"...................... XX...XX ...... XX .......................",
"....................... XXXXX .....XXXXXXXX.....................",
"........................ XXX ......XXXXXXXX.....................",
"................................................................",
"................................................................"
};
Using vi convert it into an ASCII ppm (portable pixmap).
P3
64 16
255
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 255 255 255 255 255 255
0 0 0 0 0 0 255 255 255 255 255 255 255 255 255
188 188 188 0 0 0 255 255 255 255 255 255 255 255 255
255 255 255 0 0 0 188 188 188 255 255 255 255 255 255
188 188 188 0 0 0 255 255 255 255 255 255 255 255 255
255 255 255 255 255 255 0 0 0 255 255 255 255 255 255
255 255 255 255 255 255 0 0 0 255 255 255 255 255 255
255 255 255 188 188 188 0 0 0 0 0 0 0 0 0
0 0 0 255 255 255 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 255 255 255 0 0 0 255 255 255
255 255 255 255 255 255 0 0 0 255 255 255 255 255 255
255 255 255 255 255 255 255 255 255 0 0 0 255 255 255
0 0 0 0 0 0 255 255 255 0 0 0
0 0 0 0 0 0 255 255 255 0 0 0 0 0 0
255 255 255 0 0 0 255 255 255 0 0 0 0 0 0
255 255 255 0 0 0 255 255 255 0 0 0 0 0 0
0 0 0 0 0 0 255 255 255 0 0 0 0 0 0
255 255 255 0 0 0 0 0 0 0 0 0 255 255 255
0 0 0 0 0 0 0 0 0 255 255 255 0 0 0
0 0 0 0 0 0 0 0 0 255 255 255 0 0 0
0 0 0 255 255 255 0 0 0 0 0 0 0 0 0
0 0 0 255 255 255 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 255 255 255 0 0 0 0 0 0
255 255 255 0 0 0 0 0 0 0 0 0 0 0 0
255 255 255 0 0 0 0 0 0 0 0 0 255 255 255
0 0 0 0 0 0 255 255 255 0 0 0
0 0 0 0 0 0 255 255 255 0 0 0 0 0 0
0 0 0 0 0 0 255 255 255 255 255 255 255 255 255
0 0 0 0 0 0 255 255 255 255 255 255 255 255 255
0 0 0 0 0 0 255 255 255 255 255 255 255 255 255
255 255 255 0 0 0 0 0 0 0 0 0 255 255 255
0 0 0 0 0 0 0 0 0 255 255 255 255 255 255
255 255 255 0 0 0 0 0 0 255 255 255 0 0 0
0 0 0 255 255 255 0 0 0 0 0 0 0 0 0
0 0 0 255 255 255 0 0 0 188 188 188 255 255 255
188 188 188 0 0 0 255 255 255 0 0 0 0 0 0
255 255 255 0 0 0 0 0 0 0 0 0 0 0 0
255 255 255 0 0 0 0 0 0 0 0 0 255 255 255
255 255 255 255 255 255 255 255 255 0 0 0
0 0 0 0 0 0 255 255 255 0 0 0 0 0 0
255 255 255 0 0 0 255 255 255 0 0 0 0 0 0
255 255 255 0 0 0 255 255 255 0 0 0 0 0 0
0 0 0 0 0 0 255 255 255 0 0 0 0 0 0
255 255 255 0 0 0 0 0 0 0 0 0 255 255 255
0 0 0 0 0 0 0 0 0 255 255 255 0 0 0
0 0 0 0 0 0 0 0 0 255 255 255 0 0 0
0 0 0 255 255 255 0 0 0 0 0 0 0 0 0
0 0 0 255 255 255 188 188 188 255 255 255 0 0 0
255 255 255 188 188 188 255 255 255 0 0 0 0 0 0
255 255 255 0 0 0 0 0 0 0 0 0 0 0 0
255 255 255 0 0 0 0 0 0 0 0 0 255 255 255
0 0 0 0 0 0 255 255 255 0 0 0
0 0 0 0 0 0 0 0 0 255 255 255 255 255 255
0 0 0 0 0 0 255 255 255 0 0 0 0 0 0
255 255 255 0 0 0 255 255 255 255 255 255 255 255 255
255 255 255 0 0 0 255 255 255 0 0 0 0 0 0
255 255 255 0 0 0 0 0 0 0 0 0 255 255 255
0 0 0 0 0 0 0 0 0 255 255 255 255 255 255
255 255 255 255 255 255 0 0 0 255 255 255 255 255 255
255 255 255 188 188 188 0 0 0 0 0 0 0 0 0
0 0 0 255 255 255 188 188 188 0 0 0 0 0 0
0 0 0 188 188 188 255 255 255 0 0 0 255 255 255
255 255 255 255 255 255 0 0 0 0 0 0 0 0 0
255 255 255 0 0 0 0 0 0 0 0 0 255 255 255
0 0 0 0 0 0 255 255 255 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
255 255 255 255 255 255 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 255 255 255 255 255 255 0 0 0 0 0 0
255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
255 255 255 255 255 255 255 255 255 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
188 188 188 255 255 255 255 255 255 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
255 255 255 255 255 255 188 188 188 0 0 0 0 0 0
255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
255 255 255 255 255 255 255 255 255 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 188 188 188 255 255 255 255 255 255 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 255 255 255
255 255 255 188 188 188 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 188 188 188 255 255 255 255 255 255
188 188 188 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 188 188 188 255 255 255 255 255 255
0 0 0 0 0 0 0 0 0 255 255 255 255 255 255
188 188 188 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 188 188 188 255 255 255 255 255 255
188 188 188 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 188 188 188 255 255 255
255 255 255 255 255 255 255 255 255 255 255 255 188 188 188
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
255 255 255 255 255 255 255 255 255 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 188 188 188
255 255 255 255 255 255 255 255 255 188 188 188 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
255 255 255 255 255 255 255 255 255 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0
Next use pnmtopng to convert it into a PNG (Portable Network Graphics) file.
And finally use pngcrush to reduce the file size of the PNG file.
Or you can go another route and use vi to create an SVG (Scalable Vector Graphics) file.
<svg xmlns="http://www.w3.org/2000/svg" version="1.2" baseProfile="tiny" width="64px" height="16px">
<rect x="0px" y="0px" width="64px" height="16px" fill="black"/>
<text x="4px" y="6px" fill="white" font-size="7px">CREATED WITH</text>
<text x="22px" y="15px" fill="white" font-size="10px" font-weight="bold">VI</text>
</svg>
And then encapsulate that in an object.
<object data="graphics/svg/created_with_vi.svg" type="image/svg/xml" height="24" width="64">
<img src="graphics/xbm/created_with_vi.png" type="image/png" height="16" width="64" alt="created with VI" />
</object>