make-gray50.c
author viric@llimona
Mon, 23 Oct 2006 00:35:20 +0200
changeset 3 2bdd3f8b7864
parent 0 2b12eedda295
permissions -rw-r--r--
Diverses millores: New, gnuplots, ...
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
2b12eedda295 Made program to create gray50 bitmaps.
viric@llimona
parents:
diff changeset
     1
#include <stdio.h>
2b12eedda295 Made program to create gray50 bitmaps.
viric@llimona
parents:
diff changeset
     2
#include <stdlib.h>
2b12eedda295 Made program to create gray50 bitmaps.
viric@llimona
parents:
diff changeset
     3
2b12eedda295 Made program to create gray50 bitmaps.
viric@llimona
parents:
diff changeset
     4
2b12eedda295 Made program to create gray50 bitmaps.
viric@llimona
parents:
diff changeset
     5
static int width, height;
2b12eedda295 Made program to create gray50 bitmaps.
viric@llimona
parents:
diff changeset
     6
static char bname[50] = "noname";
2b12eedda295 Made program to create gray50 bitmaps.
viric@llimona
parents:
diff changeset
     7
static int perline = 13;
2b12eedda295 Made program to create gray50 bitmaps.
viric@llimona
parents:
diff changeset
     8
2b12eedda295 Made program to create gray50 bitmaps.
viric@llimona
parents:
diff changeset
     9
static char mask[9] = { 0x00, 0x80, 0xc0, 0xe0, 0xf0, 0xf8, 0xfc, 0xfe, 0xff };
2b12eedda295 Made program to create gray50 bitmaps.
viric@llimona
parents:
diff changeset
    10
static char imask[9] = { 0x00, 0x01, 0x03, 0x07, 0x0f, 0x1f, 0x3f, 0x7f, 0xff };
2b12eedda295 Made program to create gray50 bitmaps.
viric@llimona
parents:
diff changeset
    11
2b12eedda295 Made program to create gray50 bitmaps.
viric@llimona
parents:
diff changeset
    12
void
2b12eedda295 Made program to create gray50 bitmaps.
viric@llimona
parents:
diff changeset
    13
parameters(const int argn, char **argc)
2b12eedda295 Made program to create gray50 bitmaps.
viric@llimona
parents:
diff changeset
    14
{
2b12eedda295 Made program to create gray50 bitmaps.
viric@llimona
parents:
diff changeset
    15
	if (argn != 3)
2b12eedda295 Made program to create gray50 bitmaps.
viric@llimona
parents:
diff changeset
    16
	{
2b12eedda295 Made program to create gray50 bitmaps.
viric@llimona
parents:
diff changeset
    17
		fprintf(stderr, "usage: %s <width> <height>\n", argc[0]);
2b12eedda295 Made program to create gray50 bitmaps.
viric@llimona
parents:
diff changeset
    18
		exit(1);
2b12eedda295 Made program to create gray50 bitmaps.
viric@llimona
parents:
diff changeset
    19
	}
2b12eedda295 Made program to create gray50 bitmaps.
viric@llimona
parents:
diff changeset
    20
2b12eedda295 Made program to create gray50 bitmaps.
viric@llimona
parents:
diff changeset
    21
	width = atoi(argc[1]);
2b12eedda295 Made program to create gray50 bitmaps.
viric@llimona
parents:
diff changeset
    22
	height = atoi(argc[2]);
2b12eedda295 Made program to create gray50 bitmaps.
viric@llimona
parents:
diff changeset
    23
}
2b12eedda295 Made program to create gray50 bitmaps.
viric@llimona
parents:
diff changeset
    24
2b12eedda295 Made program to create gray50 bitmaps.
viric@llimona
parents:
diff changeset
    25
void
2b12eedda295 Made program to create gray50 bitmaps.
viric@llimona
parents:
diff changeset
    26
writesize(int w, int h)
2b12eedda295 Made program to create gray50 bitmaps.
viric@llimona
parents:
diff changeset
    27
{
2b12eedda295 Made program to create gray50 bitmaps.
viric@llimona
parents:
diff changeset
    28
	printf("#define %s_width %i\n", bname, w);
2b12eedda295 Made program to create gray50 bitmaps.
viric@llimona
parents:
diff changeset
    29
	printf("#define %s_height %i\n", bname, h);
2b12eedda295 Made program to create gray50 bitmaps.
viric@llimona
parents:
diff changeset
    30
}
2b12eedda295 Made program to create gray50 bitmaps.
viric@llimona
parents:
diff changeset
    31
2b12eedda295 Made program to create gray50 bitmaps.
viric@llimona
parents:
diff changeset
    32
char
2b12eedda295 Made program to create gray50 bitmaps.
viric@llimona
parents:
diff changeset
    33
cstart(int p, int n)
2b12eedda295 Made program to create gray50 bitmaps.
viric@llimona
parents:
diff changeset
    34
{
2b12eedda295 Made program to create gray50 bitmaps.
viric@llimona
parents:
diff changeset
    35
	char c;
2b12eedda295 Made program to create gray50 bitmaps.
viric@llimona
parents:
diff changeset
    36
2b12eedda295 Made program to create gray50 bitmaps.
viric@llimona
parents:
diff changeset
    37
	if (p==0)
2b12eedda295 Made program to create gray50 bitmaps.
viric@llimona
parents:
diff changeset
    38
		c=0xaa;
2b12eedda295 Made program to create gray50 bitmaps.
viric@llimona
parents:
diff changeset
    39
	else
2b12eedda295 Made program to create gray50 bitmaps.
viric@llimona
parents:
diff changeset
    40
		c=0x55;
2b12eedda295 Made program to create gray50 bitmaps.
viric@llimona
parents:
diff changeset
    41
2b12eedda295 Made program to create gray50 bitmaps.
viric@llimona
parents:
diff changeset
    42
	return c & mask[n];
2b12eedda295 Made program to create gray50 bitmaps.
viric@llimona
parents:
diff changeset
    43
}
2b12eedda295 Made program to create gray50 bitmaps.
viric@llimona
parents:
diff changeset
    44
2b12eedda295 Made program to create gray50 bitmaps.
viric@llimona
parents:
diff changeset
    45
char
2b12eedda295 Made program to create gray50 bitmaps.
viric@llimona
parents:
diff changeset
    46
cend(int p, int n)
2b12eedda295 Made program to create gray50 bitmaps.
viric@llimona
parents:
diff changeset
    47
{
2b12eedda295 Made program to create gray50 bitmaps.
viric@llimona
parents:
diff changeset
    48
	char c;
2b12eedda295 Made program to create gray50 bitmaps.
viric@llimona
parents:
diff changeset
    49
2b12eedda295 Made program to create gray50 bitmaps.
viric@llimona
parents:
diff changeset
    50
	if (p==0)
2b12eedda295 Made program to create gray50 bitmaps.
viric@llimona
parents:
diff changeset
    51
		c=0xaa;
2b12eedda295 Made program to create gray50 bitmaps.
viric@llimona
parents:
diff changeset
    52
	else
2b12eedda295 Made program to create gray50 bitmaps.
viric@llimona
parents:
diff changeset
    53
		c=0x55;
2b12eedda295 Made program to create gray50 bitmaps.
viric@llimona
parents:
diff changeset
    54
2b12eedda295 Made program to create gray50 bitmaps.
viric@llimona
parents:
diff changeset
    55
	return c & imask[n];
2b12eedda295 Made program to create gray50 bitmaps.
viric@llimona
parents:
diff changeset
    56
}
2b12eedda295 Made program to create gray50 bitmaps.
viric@llimona
parents:
diff changeset
    57
2b12eedda295 Made program to create gray50 bitmaps.
viric@llimona
parents:
diff changeset
    58
void
2b12eedda295 Made program to create gray50 bitmaps.
viric@llimona
parents:
diff changeset
    59
writebits(int w, int h)
2b12eedda295 Made program to create gray50 bitmaps.
viric@llimona
parents:
diff changeset
    60
{
2b12eedda295 Made program to create gray50 bitmaps.
viric@llimona
parents:
diff changeset
    61
	int column;
2b12eedda295 Made program to create gray50 bitmaps.
viric@llimona
parents:
diff changeset
    62
	int i;
2b12eedda295 Made program to create gray50 bitmaps.
viric@llimona
parents:
diff changeset
    63
	int bits;
2b12eedda295 Made program to create gray50 bitmaps.
viric@llimona
parents:
diff changeset
    64
	unsigned char c;
2b12eedda295 Made program to create gray50 bitmaps.
viric@llimona
parents:
diff changeset
    65
	int pair; /* boolean */
2b12eedda295 Made program to create gray50 bitmaps.
viric@llimona
parents:
diff changeset
    66
	int leftline;
2b12eedda295 Made program to create gray50 bitmaps.
viric@llimona
parents:
diff changeset
    67
2b12eedda295 Made program to create gray50 bitmaps.
viric@llimona
parents:
diff changeset
    68
	printf("static char %s_bits[] = {\n", bname);
2b12eedda295 Made program to create gray50 bitmaps.
viric@llimona
parents:
diff changeset
    69
2b12eedda295 Made program to create gray50 bitmaps.
viric@llimona
parents:
diff changeset
    70
	bits=w*h;
2b12eedda295 Made program to create gray50 bitmaps.
viric@llimona
parents:
diff changeset
    71
	leftline=w;
2b12eedda295 Made program to create gray50 bitmaps.
viric@llimona
parents:
diff changeset
    72
	i=0;
2b12eedda295 Made program to create gray50 bitmaps.
viric@llimona
parents:
diff changeset
    73
	column=0;
2b12eedda295 Made program to create gray50 bitmaps.
viric@llimona
parents:
diff changeset
    74
	pair=0;
2b12eedda295 Made program to create gray50 bitmaps.
viric@llimona
parents:
diff changeset
    75
	while(i < bits)
2b12eedda295 Made program to create gray50 bitmaps.
viric@llimona
parents:
diff changeset
    76
	{
2b12eedda295 Made program to create gray50 bitmaps.
viric@llimona
parents:
diff changeset
    77
		if(column == 0)
2b12eedda295 Made program to create gray50 bitmaps.
viric@llimona
parents:
diff changeset
    78
			putchar(' ');
2b12eedda295 Made program to create gray50 bitmaps.
viric@llimona
parents:
diff changeset
    79
2b12eedda295 Made program to create gray50 bitmaps.
viric@llimona
parents:
diff changeset
    80
		/*fprintf(stderr, "leftline=%i\n", leftline);*/
2b12eedda295 Made program to create gray50 bitmaps.
viric@llimona
parents:
diff changeset
    81
		if (leftline >= 8)
2b12eedda295 Made program to create gray50 bitmaps.
viric@llimona
parents:
diff changeset
    82
		{
2b12eedda295 Made program to create gray50 bitmaps.
viric@llimona
parents:
diff changeset
    83
			c = cstart(pair, 8);
2b12eedda295 Made program to create gray50 bitmaps.
viric@llimona
parents:
diff changeset
    84
			printf("0x%2x", (unsigned int) c);
2b12eedda295 Made program to create gray50 bitmaps.
viric@llimona
parents:
diff changeset
    85
			column++;
2b12eedda295 Made program to create gray50 bitmaps.
viric@llimona
parents:
diff changeset
    86
			leftline -= 8;
2b12eedda295 Made program to create gray50 bitmaps.
viric@llimona
parents:
diff changeset
    87
			i += 8;
2b12eedda295 Made program to create gray50 bitmaps.
viric@llimona
parents:
diff changeset
    88
		}
2b12eedda295 Made program to create gray50 bitmaps.
viric@llimona
parents:
diff changeset
    89
		else if (leftline > 0)
2b12eedda295 Made program to create gray50 bitmaps.
viric@llimona
parents:
diff changeset
    90
		{
2b12eedda295 Made program to create gray50 bitmaps.
viric@llimona
parents:
diff changeset
    91
			c = cend(pair, leftline);
2b12eedda295 Made program to create gray50 bitmaps.
viric@llimona
parents:
diff changeset
    92
			pair ^= 1; /* 1->0, 0->1 */
2b12eedda295 Made program to create gray50 bitmaps.
viric@llimona
parents:
diff changeset
    93
			c |= cstart(pair, 8 - leftline);
2b12eedda295 Made program to create gray50 bitmaps.
viric@llimona
parents:
diff changeset
    94
			printf("0x%2x", (unsigned int) c);
2b12eedda295 Made program to create gray50 bitmaps.
viric@llimona
parents:
diff changeset
    95
			i += leftline;
2b12eedda295 Made program to create gray50 bitmaps.
viric@llimona
parents:
diff changeset
    96
			leftline = w;
2b12eedda295 Made program to create gray50 bitmaps.
viric@llimona
parents:
diff changeset
    97
			column++;
2b12eedda295 Made program to create gray50 bitmaps.
viric@llimona
parents:
diff changeset
    98
		}
2b12eedda295 Made program to create gray50 bitmaps.
viric@llimona
parents:
diff changeset
    99
		else if (leftline == 0)
2b12eedda295 Made program to create gray50 bitmaps.
viric@llimona
parents:
diff changeset
   100
		{	
2b12eedda295 Made program to create gray50 bitmaps.
viric@llimona
parents:
diff changeset
   101
			leftline = w;
2b12eedda295 Made program to create gray50 bitmaps.
viric@llimona
parents:
diff changeset
   102
			pair ^= 1; /* 1->0, 0->1 */
2b12eedda295 Made program to create gray50 bitmaps.
viric@llimona
parents:
diff changeset
   103
		}
2b12eedda295 Made program to create gray50 bitmaps.
viric@llimona
parents:
diff changeset
   104
2b12eedda295 Made program to create gray50 bitmaps.
viric@llimona
parents:
diff changeset
   105
		if(i < bits && leftline != 0)
2b12eedda295 Made program to create gray50 bitmaps.
viric@llimona
parents:
diff changeset
   106
			putchar(',');
2b12eedda295 Made program to create gray50 bitmaps.
viric@llimona
parents:
diff changeset
   107
2b12eedda295 Made program to create gray50 bitmaps.
viric@llimona
parents:
diff changeset
   108
		if (column > perline && leftline != 0)
2b12eedda295 Made program to create gray50 bitmaps.
viric@llimona
parents:
diff changeset
   109
		{
2b12eedda295 Made program to create gray50 bitmaps.
viric@llimona
parents:
diff changeset
   110
			putchar('\n');
2b12eedda295 Made program to create gray50 bitmaps.
viric@llimona
parents:
diff changeset
   111
			column = 0;
2b12eedda295 Made program to create gray50 bitmaps.
viric@llimona
parents:
diff changeset
   112
		}
2b12eedda295 Made program to create gray50 bitmaps.
viric@llimona
parents:
diff changeset
   113
2b12eedda295 Made program to create gray50 bitmaps.
viric@llimona
parents:
diff changeset
   114
	}
2b12eedda295 Made program to create gray50 bitmaps.
viric@llimona
parents:
diff changeset
   115
2b12eedda295 Made program to create gray50 bitmaps.
viric@llimona
parents:
diff changeset
   116
	printf("};\n");
2b12eedda295 Made program to create gray50 bitmaps.
viric@llimona
parents:
diff changeset
   117
}
2b12eedda295 Made program to create gray50 bitmaps.
viric@llimona
parents:
diff changeset
   118
2b12eedda295 Made program to create gray50 bitmaps.
viric@llimona
parents:
diff changeset
   119
int main(int argn, char **argc)
2b12eedda295 Made program to create gray50 bitmaps.
viric@llimona
parents:
diff changeset
   120
{
2b12eedda295 Made program to create gray50 bitmaps.
viric@llimona
parents:
diff changeset
   121
	parameters(argn, argc);
2b12eedda295 Made program to create gray50 bitmaps.
viric@llimona
parents:
diff changeset
   122
	writesize(width, height);
2b12eedda295 Made program to create gray50 bitmaps.
viric@llimona
parents:
diff changeset
   123
	writebits(width, height);
2b12eedda295 Made program to create gray50 bitmaps.
viric@llimona
parents:
diff changeset
   124
	return 0;
2b12eedda295 Made program to create gray50 bitmaps.
viric@llimona
parents:
diff changeset
   125
}