Look. I don't know how to do it either. But I'm on Athena, which is an
X-window system. So there are lots of programs running around here that
can use and display these bitmaps. Like, I've got a Bob-icon the size
of a postage stamp that activates a massive screen mutation program.
Without X, though, I got this little program that'll display a bitmap.
Got it in the mail awhile ago. You hablo C?
Here:
---------------- cut here ------------------
/*
* pr_bitmap.c -- bitmap to ASCII character mosaic conversion
*/
#define WIDTH 64
#define HEIGHT 64
static int bits[] = {
/* insert bitmap here */
0x0400,0xFC00,0x00D7,0x0018,0x0700,0xD000,0x0014,0x0078,
0x0080,0x5000,0x000C,0x0030,0x0780,0x0000,0x0004,0x00F8,
0x07C0,0x0000,0x0000,0x0070,0x01C0,0x0000,0x0000,0x00D0,
0x01C0,0x0000,0x0000,0x0070,0x01E0,0x0000,0x0000,0x0070,
0x0160,0x0000,0x0000,0x00E0,0x00E0,0x0000,0x0000,0x00E0,
0x01C0,0x0000,0x0000,0x01A0,0x01E0,0x0000,0x0000,0x00E0,
0x00A0,0x0000,0x0000,0x0060,0x03A0,0x0000,0x0000,0x0160,
0x01E0,0x0000,0x0000,0x01E0,0x81A0,0x0000,0x0000,0x00A1,
0x01A0,0x0001,0xC000,0x0170,0x40A0,0x05AE,0x36A0,0x0072,
0x42C0,0x1000,0x8008,0x03E1,0x80E0,0x23DF,0xFFC4,0x03E0,
0x10E0,0x0400,0x0020,0x01E2,0xF3E0,0xFFFF,0xFFFF,0x06F2,
0xF980,0x0FFF,0xFFF0,0x0763,0xFFE0,0x1FFF,0xFFF8,0x0587,
0xF820,0x1FFF,0xFFFC,0x07FF,0xFFE0,0xFFFF,0xFFFF,0x0307,
0xF9E0,0x3FFF,0xFFFC,0x03FF,0xF9E0,0x1FFF,0xFFFC,0x03C7,
0xF9E0,0x1FFF,0xFFFC,0x02C7,0xF9E0,0x1FFF,0xFFFC,0x0387,
0xF1E0,0x1FFF,0xFFFC,0x0127,0xF1A0,0x1FFF,0xFFF8,0x01E7,
0xE160,0x0FFF,0xFFF8,0x01A3,0x0320,0x1800,0xFFF4,0x0161,
0x01E0,0x1000,0x0014,0x0120,0x02C0,0x1400,0x0028,0x00E0,
0x0200,0x1600,0x0078,0x0060,0x0E00,0x0100,0x0040,0x0020,
0x0600,0x0300,0x0040,0x0030,0x0E00,0x0E00,0x0070,0x0028,
0x0400,0x1000,0x0008,0x0038,0x0C00,0x1800,0x0008,0x0014,
0x3800,0xA1F8,0x1FC7,0x0018,0x1800,0x0004,0x2000,0x0018,
0x1800,0x0014,0x2400,0x001A,0x1000,0xBFF4,0x27FF,0x0008,
0x7000,0x0004,0x2000,0x000C,0x3000,0x0004,0x2000,0x0005,
0x6000,0x0004,0x8000,0x0005,0xC000,0x0000,0x8000,0x0005,
0x4000,0x0000,0x0000,0x0002,0x4000,0x0000,0x8000,0x0003,
0x8000,0x0003,0x4070,0x0000,0x8000,0x820A,0x6443,0x0003,
0x8000,0xE088,0x4100,0x0001,0x0000,0x22AB,0x4184,0x0001,
0x0000,0x30FE,0x83AC,0x0001,0x0000,0x55D4,0xD19B,0x0000,
0x0000,0x1A04,0xD798,0x0000,0x0000,0x1338,0x798A,0x0000,
0x0000,0xB070,0x7C9A,0x0000,0x0000,0x02F0,0x579B,0x0000,
0x0000,0x7FE0,0x3981,0x0000,0x0000,0xFEC0,0x3FBB,0x0000
};
#include <stdio.h>
#define EOS '\0' /* end of string */
#define BLOT '#' /* printed representation of a bit */
#define BITLEN 16 /* 16 bit values in bits array */
/* global variables */
char scanline[WIDTH];
int bitmap[WIDTH/BITLEN];
/*
* Converts a bitmap in binary format to a form suitable for display
*/
main(argc, argv)
register char **argv;
register int argc;
{
register int i, j;
for (i = 0; i < HEIGHT; i++)
{
for (j = 0; j < WIDTH/BITLEN; j++)
{
bitmap[j] = bits[(i * HEIGHT/BITLEN) + j];
}
convert(bitmap, scanline);
scanline[WIDTH] = EOS;
printf("%s\n", scanline);
}
exit(0);
}
convert(val, charvec)
int val[];
char charvec[];
{
register int i, j, mask;
for (i = 0; i < WIDTH/BITLEN; i++)
{
mask = 1;
for (j = 0; j < BITLEN; j++)
{
charvec[(i * BITLEN) + j] = (val[i] & mask) ? BLOT : ' ';
mask <<= 1;
}
}
}
---------------- cut here ------------------
______________________________________________________________________________
Gary L. Dryfoos | "So, you cannot resist,
ARPA/Internet: dryfoo@athena.mit.edu | can you? No, no one can!
UUCP/Usenet: ...mit-eddie!athena.mit.edu!dryfoo | When LeMott sings, they
Phone: (617) 253-0184 / (617) 825-6115 | dance! Ha-ha-ha!
USPS: E40-318, MIT, Cambridge, MA 02139 | They all dance!"
==============================================================================