d60b460b03
- Missing uncompface -X option used in exmh - Missing filter programs to generate ikon file - I will try communicate the necessary add ons to the new developers of faces.
209 lines
4.6 KiB
Plaintext
209 lines
4.6 KiB
Plaintext
*** compface/gen.c Tue Jan 15 23:58:46 2002
|
|
--- /home/lkoeller/tmp/ports/mail/faces/work/faces/compface/gen.c Wed Jun 19 08:29:13 1991
|
|
***************
|
|
*** 1,10 ****
|
|
-
|
|
/*
|
|
- * $Header: /cvs/faces/faces/compface/gen.c,v 1.2 2002/01/15 22:58:46 devface Exp $
|
|
- *
|
|
* Compface - 48x48x1 image compression and decompression
|
|
*
|
|
! * Copyright (c) 1990-2002 James Ashton - Sydney University
|
|
*
|
|
* Permission is given to distribute these sources, as long as the
|
|
* copyright messages are not removed, and no monies are exchanged.
|
|
--- 1,9 ----
|
|
/*
|
|
* Compface - 48x48x1 image compression and decompression
|
|
*
|
|
! * Copyright (c) James Ashton - Sydney University - June 1990.
|
|
! *
|
|
! * Written 11th November 1989.
|
|
*
|
|
* Permission is given to distribute these sources, as long as the
|
|
* copyright messages are not removed, and no monies are exchanged.
|
|
***************
|
|
*** 18,79 ****
|
|
|
|
#define GEN(g) F[h] ^= G.g[k]; break
|
|
|
|
! static void Gen(char *);
|
|
|
|
static void
|
|
! Gen(char *f)
|
|
{
|
|
! int m, l, k, j, i, h;
|
|
|
|
! for (j = 0; j < HEIGHT; j++) {
|
|
! for (i = 0; i < WIDTH; i++) {
|
|
h = i + j * WIDTH;
|
|
k = 0;
|
|
! for (l = i - 2; l <= i + 2; l++) {
|
|
! for (m = j - 2; m <= j; m++) {
|
|
! if ((l >= i) && (m == j)) {
|
|
continue;
|
|
! }
|
|
! if ((l > 0) && (l <= WIDTH) && (m > 0)) {
|
|
k = *(f + l + m * WIDTH) ? k * 2 + 1 : k * 2;
|
|
}
|
|
! }
|
|
! }
|
|
! switch (i) {
|
|
case 1 :
|
|
! switch (j) {
|
|
case 1 : GEN(g_22);
|
|
case 2 : GEN(g_21);
|
|
default : GEN(g_20);
|
|
}
|
|
break;
|
|
-
|
|
case 2 :
|
|
! switch (j) {
|
|
case 1 : GEN(g_12);
|
|
case 2 : GEN(g_11);
|
|
default : GEN(g_10);
|
|
}
|
|
break;
|
|
-
|
|
case WIDTH - 1 :
|
|
! switch (j) {
|
|
case 1 : GEN(g_42);
|
|
case 2 : GEN(g_41);
|
|
default : GEN(g_40);
|
|
}
|
|
break;
|
|
-
|
|
case WIDTH :
|
|
! switch (j) {
|
|
case 1 : GEN(g_32);
|
|
case 2 : GEN(g_31);
|
|
default : GEN(g_30);
|
|
}
|
|
break;
|
|
-
|
|
default :
|
|
! switch (j) {
|
|
case 1 : GEN(g_02);
|
|
case 2 : GEN(g_01);
|
|
default : GEN(g_00);
|
|
--- 17,81 ----
|
|
|
|
#define GEN(g) F[h] ^= G.g[k]; break
|
|
|
|
! static void Gen P((char *)) ;
|
|
|
|
static void
|
|
! Gen(f)
|
|
! register char *f;
|
|
{
|
|
! register int m, l, k, j, i, h;
|
|
|
|
! for (j = 0; j < HEIGHT; j++)
|
|
! {
|
|
! for (i = 0; i < WIDTH; i++)
|
|
! {
|
|
h = i + j * WIDTH;
|
|
k = 0;
|
|
! for (l = i - 2; l <= i + 2; l++)
|
|
! for (m = j - 2; m <= j; m++)
|
|
! {
|
|
! if ((l >= i) && (m == j))
|
|
continue;
|
|
! if ((l > 0) && (l <= WIDTH) && (m > 0))
|
|
k = *(f + l + m * WIDTH) ? k * 2 + 1 : k * 2;
|
|
}
|
|
! switch (i)
|
|
! {
|
|
case 1 :
|
|
! switch (j)
|
|
! {
|
|
case 1 : GEN(g_22);
|
|
case 2 : GEN(g_21);
|
|
default : GEN(g_20);
|
|
}
|
|
break;
|
|
case 2 :
|
|
! switch (j)
|
|
! {
|
|
case 1 : GEN(g_12);
|
|
case 2 : GEN(g_11);
|
|
default : GEN(g_10);
|
|
}
|
|
break;
|
|
case WIDTH - 1 :
|
|
! switch (j)
|
|
! {
|
|
case 1 : GEN(g_42);
|
|
case 2 : GEN(g_41);
|
|
default : GEN(g_40);
|
|
}
|
|
break;
|
|
case WIDTH :
|
|
! switch (j)
|
|
! {
|
|
case 1 : GEN(g_32);
|
|
case 2 : GEN(g_31);
|
|
default : GEN(g_30);
|
|
}
|
|
break;
|
|
default :
|
|
! switch (j)
|
|
! {
|
|
case 1 : GEN(g_02);
|
|
case 2 : GEN(g_01);
|
|
default : GEN(g_00);
|
|
***************
|
|
*** 84,109 ****
|
|
}
|
|
}
|
|
|
|
-
|
|
void
|
|
GenFace()
|
|
{
|
|
static char new[PIXELS];
|
|
! char *f1, *f2;
|
|
! int i;
|
|
|
|
f1 = new;
|
|
f2 = F;
|
|
i = PIXELS;
|
|
! while (i-- > 0) {
|
|
*(f1++) = *(f2++);
|
|
- }
|
|
Gen(new);
|
|
}
|
|
|
|
-
|
|
void
|
|
UnGenFace()
|
|
{
|
|
Gen(F);
|
|
}
|
|
--- 86,110 ----
|
|
}
|
|
}
|
|
|
|
void
|
|
GenFace()
|
|
{
|
|
static char new[PIXELS];
|
|
! register char *f1;
|
|
! register char *f2;
|
|
! register int i;
|
|
|
|
f1 = new;
|
|
f2 = F;
|
|
i = PIXELS;
|
|
! while (i-- > 0)
|
|
*(f1++) = *(f2++);
|
|
Gen(new);
|
|
}
|
|
|
|
void
|
|
UnGenFace()
|
|
{
|
|
Gen(F);
|
|
}
|
|
+
|