From f5e1e642a964fc055b93e60948da66565ec5f094 Mon Sep 17 00:00:00 2001 From: "Mirar (Pontus Hagland)" <pike@sort.mirar.org> Date: Mon, 24 May 1999 14:22:51 +0200 Subject: [PATCH] new getrgb function call bugfixes in change_color and paste_alpha_color (s/MAXIMUM/MINIMUM/ in code to skip wrongly assumed alpha channel) Rev: src/modules/Image/blit.c:1.33 Rev: src/modules/Image/image.c:1.137 --- src/modules/Image/blit.c | 13 ++++++++----- src/modules/Image/image.c | 8 ++++---- 2 files changed, 12 insertions(+), 9 deletions(-) diff --git a/src/modules/Image/blit.c b/src/modules/Image/blit.c index 4531f0195e..dca2787f4f 100644 --- a/src/modules/Image/blit.c +++ b/src/modules/Image/blit.c @@ -1,10 +1,10 @@ -/* $Id: blit.c,v 1.32 1999/05/20 17:34:34 mirar Exp $ */ +/* $Id: blit.c,v 1.33 1999/05/24 12:22:51 mirar Exp $ */ #include "global.h" /* **! module Image **! note -**! $Id: blit.c,v 1.32 1999/05/20 17:34:34 mirar Exp $ +**! $Id: blit.c,v 1.33 1999/05/24 12:22:51 mirar Exp $ **! class Image */ @@ -97,6 +97,9 @@ static INLINE int getrgb(struct image *img, img->rgb.r=(unsigned char)sp[-args+args_start].u.integer; img->rgb.g=(unsigned char)sp[1-args+args_start].u.integer; img->rgb.b=(unsigned char)sp[2-args+args_start].u.integer; + +fprintf(stderr,"args=%d args_start=%d diff=%d\n", + args,args_start,args-args_start); if (args-args_start>=4) if (sp[3-args+args_start].type!=T_INT) error("Illegal alpha argument to %s\n",name); @@ -562,14 +565,14 @@ void image_paste_alpha_color(INT32 args) if (!mask->img) return; if (args==6 || args==4 || args==2 || args==3) /* color at arg 2.. */ - arg=1+getrgb(THIS,1,args,"image->paste_alpha_color()\n"); + arg=1+getrgb(THIS,1,MINIMUM(args,4),"image->paste_alpha_color()\n"); if (args>arg+1) { if (sp[arg-args].type!=T_INT - || sp[arg-args].type!=T_INT) + || sp[1+arg-args].type!=T_INT) error("illegal coordinate arguments to image->paste_alpha_color()\n"); x1=sp[arg-args].u.integer; - y1=sp[arg-args].u.integer; + y1=sp[1+arg-args].u.integer; } else x1=y1=0; diff --git a/src/modules/Image/image.c b/src/modules/Image/image.c index c8ad661283..805ebc6b15 100644 --- a/src/modules/Image/image.c +++ b/src/modules/Image/image.c @@ -1,9 +1,9 @@ -/* $Id: image.c,v 1.136 1999/05/23 17:46:41 mirar Exp $ */ +/* $Id: image.c,v 1.137 1999/05/24 12:22:49 mirar Exp $ */ /* **! module Image **! note -**! $Id: image.c,v 1.136 1999/05/23 17:46:41 mirar Exp $ +**! $Id: image.c,v 1.137 1999/05/24 12:22:49 mirar Exp $ **! class Image **! **! The main object of the <ref>Image</ref> module, this object @@ -97,7 +97,7 @@ #include "stralloc.h" #include "global.h" -RCSID("$Id: image.c,v 1.136 1999/05/23 17:46:41 mirar Exp $"); +RCSID("$Id: image.c,v 1.137 1999/05/24 12:22:49 mirar Exp $"); #include "pike_macros.h" #include "object.h" #include "constants.h" @@ -796,7 +796,7 @@ static void image_change_color(INT32 args) if (!THIS->img) error("no image\n"); to=THIS->rgb; - if (!(arg=getrgb(THIS,0,MAXIMUM(args,3),"Image.Image->change_color()"))) + if (!(arg=getrgb(THIS,0,MINIMUM(args,3),"Image.Image->change_color()"))) error("too few arguments to Image.Image->change_color()\n"); from=THIS->rgb; if (getrgb(THIS,arg,args,"Image.Image->change_color()")) -- GitLab