diff --git a/src/modules/image/image.h b/src/modules/image/image.h index c37001dc2847f855ccd298b38f44020b748360b0..bd62410980dc5689d27d2297a6ed132b31b40c6f 100644 --- a/src/modules/image/image.h +++ b/src/modules/image/image.h @@ -1,4 +1,4 @@ -/* $Id: image.h,v 1.16 1996/12/05 23:50:52 law Exp $ */ +/* $Id: image.h,v 1.17 1996/12/10 00:40:06 law Exp $ */ #define MAX_NUMCOL 32768 @@ -20,7 +20,7 @@ typedef struct typedef struct { - signed long r,g,b; + INT32 r,g,b; } rgbl_group; typedef struct diff --git a/src/modules/image/operator.c b/src/modules/image/operator.c index 51d54ef0a8e1ee4291b5567aff4492e68e012889..55a520d5e2b9c75b0e80cc1c1b7c2c6931f435f0 100644 --- a/src/modules/image/operator.c +++ b/src/modules/image/operator.c @@ -1,4 +1,4 @@ -/* $Id: operator.c,v 1.1 1996/12/05 23:52:54 law Exp $ */ +/* $Id: operator.c,v 1.2 1996/12/10 00:40:07 law Exp $ */ #include "global.h" #include <math.h> @@ -86,6 +86,15 @@ STANDARD_OPERATOR_HEADER("'+") void image_operator_multiply(INT32 args) { + double q=1/255.0; +STANDARD_OPERATOR_HEADER("'+") + while (i--) + { + d->r=floor(s1->r*s2->r*q+0.5); + d->g=floor(s1->g*s2->g*q+0.5); + d->b=floor(s1->b*s2->b*q+0.5); + s1++; s2++; d++; + } } void image_operator_maximum(INT32 args) diff --git a/src/modules/image/pattern.c b/src/modules/image/pattern.c index b83993896577bdbf2e0527ee91ea6a85b8ef59be..d4693e2aafa385718a861e981c72ffaa4f44f277 100644 --- a/src/modules/image/pattern.c +++ b/src/modules/image/pattern.c @@ -1,4 +1,4 @@ -/* $Id: pattern.c,v 1.2 1996/11/14 12:35:02 law Exp $ */ +/* $Id: pattern.c,v 1.3 1996/12/10 00:40:08 law Exp $ */ #include "global.h" @@ -78,11 +78,11 @@ static double noise(double Vx,double Vy,unsigned short *noise_p) static double turbulence(double x,double y,int octaves) { double t=0; + double mul=1; while (octaves-->0) { - x/=2; - y/=2; - t=t/2+noise(x,y,noise_p1); + t+=noise(x*mul,y*mul,noise_p1)*mul; + mul*=0.5; } return t; } diff --git a/src/modules/image/quant.c b/src/modules/image/quant.c index 3f2396b33527f9e8b3f12f7c1675964f1d0c531b..971065bb46989d53d7ece5dbd2798e3f0d7646d5 100644 --- a/src/modules/image/quant.c +++ b/src/modules/image/quant.c @@ -1,4 +1,4 @@ -/* $Id: quant.c,v 1.18 1996/12/08 23:59:59 law Exp $ */ +/* $Id: quant.c,v 1.19 1996/12/10 00:40:09 law Exp $ */ /* @@ -432,7 +432,7 @@ fprintf(stderr,"space: %d,%d,%d-%d,%d,%d ", *rgb_node= ( (*rn_next)-ct->rgb_node ) | ( ((unsigned long)split_on) << 22 ) - | ( (dir+1)<<30 ); + | ( (dir+1)<<30 ) & 0xffffffff; rgb_node=*rn_next; (*rn_next)+=2; diff --git a/src/modules/image/togif.c b/src/modules/image/togif.c index 02455d24130902a7101abc2ba2b7ec030316096d..46894cd10ba5c70926da31b67f86ad3cfabb58e3 100644 --- a/src/modules/image/togif.c +++ b/src/modules/image/togif.c @@ -1,4 +1,4 @@ -/* $Id: togif.c,v 1.20 1996/12/02 16:49:40 per Exp $ */ +/* $Id: togif.c,v 1.21 1996/12/10 00:40:11 law Exp $ */ /* togif @@ -647,8 +647,6 @@ CHRONO("gif add init"); else error("Illegal argument %d to image->gif_add()\n",3+!!ct); -fprintf(stderr,"delay: %d\n",delay); - low_my_putchar( '!', &buf ); /* extension block */ low_my_putchar( 0xf9, &buf ); /* graphics control */ low_my_putchar( 4, &buf ); /* block size */