pike.git
/
src
/
modules
/
Image
/
togif.c
version
»
Context lines:
10
20
40
80
file
none
3
pike.git/src/modules/Image/togif.c:1:
/* togif
-
$Id: togif.c,v 1.
33
1999/
04
/
13
12
:
32
:
36
mirar Exp $
+
$Id: togif.c,v 1.
34
1999/
05
/
20
17
:
34
:
38
mirar Exp $
old GIF API compat stuff */ /* **! module Image **! note
-
**! $Id: togif.c,v 1.
33
1999/
04
/
13
12
:
32
:
36
mirar Exp $
+
**! $Id: togif.c,v 1.
34
1999/
05
/
20
17
:
34
:
38
mirar Exp $
**! class Image */ #include "global.h" #include <math.h> #include <ctype.h> #include "stralloc.h" #include "global.h"
pike.git/src/modules/Image/togif.c:300:
if (transparent) { push_int(transparent->r); push_int(transparent->g); push_int(transparent->b); _image_gif_encode(5,fs); } else _image_gif_encode(2,fs); }
-
static INLINE
void
getrgb(struct image *img,
+
static INLINE
int
getrgb(struct image *img,
INT32 args_start,INT32 args,char *name) { INT32 i;
-
if (args-args_start<3) return;
+
if (args-args_start<
1) return 0;
+
+
if (image_color_svalue(sp-args+args_start,&(img->rgb)))
+
return 1;
+
+
if (args-args_start<
3) return
0
;
+
for (i=0; i<3; i++) if (sp[-args+i+args_start].type!=T_INT) error("Illegal r,g,b argument to %s\n",name); 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; if (args-args_start>=4) if (sp[3-args+args_start].type!=T_INT) error("Illegal alpha argument to %s\n",name); else
-
+
{
img->alpha=sp[3-args+args_start].u.integer;
-
+
return 4;
+
}
else
-
+
{
img->alpha=0;
-
+
return 3;
}
-
+
}
void image_togif(INT32 args) { rgb_group *transparent=NULL; if (args>=3) { getrgb(THIS,args>3,args,"image->togif() (transparency)"); transparent=&(THIS->rgb); }