pike.git / src / modules / Image / orient.c

version» Context lines:

pike.git/src/modules/Image/orient.c:1: - /* $Id: orient.c,v 1.1 1998/02/15 14:54:14 hedda Exp $ */ + /* $Id: orient.c,v 1.2 1998/02/15 15:50:10 hedda Exp $ */      /*   **! module Image   **! note - **! $Id: orient.c,v 1.1 1998/02/15 14:54:14 hedda Exp $ + **! $Id: orient.c,v 1.2 1998/02/15 15:50:10 hedda Exp $   **! class image   */      #include "global.h"      #include <math.h>   #include <ctype.h>      #include "stralloc.h"   #include "global.h"
pike.git/src/modules/Image/orient.c:104:    o4img=(struct image*)get_storage(o4,image_program);       push_int(THIS->xsize);    push_int(THIS->ysize);    o5=clone_object(image_program,2);    o5img=(struct image*)get_storage(o5,image_program);      #define A o1img   #define B THIS    -  //Create image 1 -  for(x=1; x<A->xsize-1; x++) -  for(y=1; y<A->ysize-1; y++) -  { - #define CO r -  A->img[x+y*B->xsize].CO=sqrt((sq((B->img[(x-1)+y*B->xsize].CO-B-> -  img[x+y*B->xsize].CO ))+ -  sq((B->img[x+y*B->xsize].CO- -  B->img[(x+1)+y*B->xsize].CO )) -  )/2.0); +     - #undef CO - #define CO g -  A->img[x+y*B->xsize].CO=sqrt((sq((B->img[(x-1)+y*B->xsize].CO-B-> -  img[x+y*B->xsize].CO ))+ -  sq((B->img[x+y*B->xsize].CO- -  B->img[(x+1)+y*B->xsize].CO )) -  )/2.0); +     - #undef CO - #define CO b -  A->img[x+y*B->xsize].CO=sqrt((sq((B->img[(x-1)+y*B->xsize].CO-B-> -  img[x+y*B->xsize].CO ))+ -  sq((B->img[x+y*B->xsize].CO- -  B->img[(x+1)+y*B->xsize].CO )) + #define FOOBAR(CO,xd,yd) \ +  A->img[x+y*B->xsize].CO= \ +  sqrt((sq((B->img[(x-xd)+(y-yd)*B->xsize].CO-B-> \ +  img[x+y*B->xsize].CO ))+ \ +  sq((B->img[x+y*B->xsize].CO- \ +  B->img[(x+xd)+(y+yd)*B->xsize].CO)) \    )/2.0); - #undef CO +     -  +  //Create image 1 +  for(x=1; x<A->xsize-1; x++) +  for(y=1; y<A->ysize-1; y++) +  { +  FOOBAR(r,1,0); +  FOOBAR(g,1,0); +  FOOBAR(b,1,0);    }      #undef A   #define A o2img       //Create image 2    for(x=1; x<A->xsize-1; x++)    for(y=1; y<A->ysize-1; y++)    { - #define CO r -  A->img[x+y*B->xsize].CO=sqrt((sq((B->img[(x-1)+(y-1)*B->xsize].CO-B-> -  img[x+y*B->xsize].CO ))+ -  sq((B->img[x+y*B->xsize].CO- -  B->img[(x+1)+(y+1)*B->xsize].CO )) -  )/2.0); -  - #undef CO - #define CO g -  A->img[x+y*B->xsize].CO=sqrt((sq((B->img[(x-1)+(y-1)*B->xsize].CO-B-> -  img[x+y*B->xsize].CO ))+ -  sq((B->img[x+y*B->xsize].CO- -  B->img[(x+1)+(y+1)*B->xsize].CO )) -  )/2.0); - #undef CO - #define CO b -  A->img[x+y*B->xsize].CO=sqrt((sq((B->img[(x-1)+(y-1)*B->xsize].CO-B-> -  img[x+y*B->xsize].CO ))+ -  sq((B->img[x+y*B->xsize].CO- -  B->img[(x+1)+(y+1)*B->xsize].CO )) -  )/2.0); - #undef CO -  +  FOOBAR(r,1,1); +  FOOBAR(g,1,1); +  FOOBAR(b,1,1);    }         #undef A   #define A o3img       //Create image 3    for(x=1; x<A->xsize-1; x++)    for(y=1; y<A->ysize-1; y++)    { - #define CO r -  A->img[x+y*B->xsize].CO=sqrt((sq((B->img[x+(y-1)*B->xsize].CO-B-> -  img[x+y*B->xsize].CO ))+ -  sq((B->img[x+y*B->xsize].CO- -  B->img[x+(y+1)*B->xsize].CO )) -  )/2.0); - #undef CO - #define CO g -  A->img[x+y*B->xsize].CO=sqrt((sq((B->img[x+(y-1)*B->xsize].CO-B-> -  img[x+y*B->xsize].CO ))+ -  sq((B->img[x+y*B->xsize].CO- -  B->img[x+(y+1)*B->xsize].CO )) -  )/2.0); - #undef CO - #define CO b -  A->img[x+y*B->xsize].CO=sqrt((sq((B->img[x+(y-1)*B->xsize].CO-B-> -  img[x+y*B->xsize].CO ))+ -  sq((B->img[x+y*B->xsize].CO- -  B->img[x+(y+1)*B->xsize].CO )) -  )/2.0); - #undef CO -  +  FOOBAR(r,0,1); +  FOOBAR(g,0,1); +  FOOBAR(b,0,1);    }    -  +    #undef A   #define A o4img       //Create image 4    for(x=1; x<A->xsize-1; x++)    for(y=1; y<A->ysize-1; y++)    { - #define CO r -  A->img[x+y*B->xsize].CO=sqrt((sq((B->img[(x-1)+(y+1)*B->xsize].CO-B-> -  img[x+y*B->xsize].CO ))+ -  sq((B->img[x+y*B->xsize].CO- -  B->img[(x+1)+(y-1)*B->xsize].CO )) -  )/2.0); -  - #undef CO - #define CO g -  A->img[x+y*B->xsize].CO=sqrt((sq((B->img[(x-1)+(y+1)*B->xsize].CO-B-> -  img[x+y*B->xsize].CO ))+ -  sq((B->img[x+y*B->xsize].CO- -  B->img[(x+1)+(y-1)*B->xsize].CO )) -  )/2.0); - #undef CO - #define CO b -  A->img[x+y*B->xsize].CO=sqrt((sq((B->img[(x-1)+(y+1)*B->xsize].CO-B-> -  img[x+y*B->xsize].CO ))+ -  sq((B->img[x+y*B->xsize].CO- -  B->img[(x+1)+(y-1)*B->xsize].CO )) -  )/2.0); -  - #undef CO -  +  FOOBAR(r,-1,1); +  FOOBAR(g,-1,1); +  FOOBAR(b,-1,1);    }      #undef A   #define A o5img       //Create image 5, the hsv-thing...    for(x=1; x<A->xsize-1; x++)    for(y=1; y<A->ysize-1; y++)    {    //Första färg, sista mörkhet