From 95a0eba37e28218738f319607972e5c91fffcd9d Mon Sep 17 00:00:00 2001 From: "Mirar (Pontus Hagland)" <pike@sort.mirar.org> Date: Sun, 27 Oct 1996 18:14:11 +0100 Subject: [PATCH] getpixel... Rev: src/modules/image/doc/image.html:1.5 Rev: src/modules/image/image.c:1.20 --- src/modules/image/doc/image.html | 7 +++++++ src/modules/image/image.c | 29 +++++++++++++++++++++++++++++ 2 files changed, 36 insertions(+) diff --git a/src/modules/image/doc/image.html b/src/modules/image/doc/image.html index deb62fd637..9c65500ac0 100644 --- a/src/modules/image/doc/image.html +++ b/src/modules/image/doc/image.html @@ -544,4 +544,11 @@ int main() write(o->togif_fs()); return 0; } +</pre> + +<h2>Undocumented, yet:</h2> +<pre> +object image->select_from(int x,int y); +object image->distancesq(int r,int g,int b); +array(int) image->getpixel(int x,int y); </pre> \ No newline at end of file diff --git a/src/modules/image/image.c b/src/modules/image/image.c index 62172bd7ed..a79178bc22 100644 --- a/src/modules/image/image.c +++ b/src/modules/image/image.c @@ -1131,6 +1131,33 @@ void image_setpixel(INT32 args) push_object(THISOBJ); } +void image_getpixel(INT32 args) +{ + INT32 x,y; + rgb_group rgb; + + if (args<2|| + sp[-args].type!=T_INT|| + sp[1-args].type!=T_INT) + error("Illegal arguments to image->getpixel()\n"); + + if (!THIS->img) error("No image.\n"); + + x=sp[-args].u.integer; + y=sp[1-args].u.integer; + if (!THIS->img) return; + if(x<0||y<0||x>=THIS->xsize||y>=THIS->ysize) + rgb=THIS->rgb; + else + rgb=pixel(THIS,x,y); + + pop_n_elems(args); + push_int(rgb.r); + push_int(rgb.g); + push_int(rgb.b); + f_aggregate(3); +} + void image_line(INT32 args) { if (args<4|| @@ -2239,6 +2266,8 @@ void init_image_programs() "function(int,int,int:object)",0); add_function("setpixel",image_setpixel, "function(int,int,"RGB_TYPE":object)",0); + add_function("getpixel",image_getpixel, + "function(int,int:array(int))",0); add_function("line",image_line, "function(int,int,int,int,"RGB_TYPE":object)",0); add_function("circle",image_circle, -- GitLab