home *** CD-ROM | disk | FTP | other *** search
/ PC Online 1997 May / PCO_5_97.ISO / FilesBBS / OS2 / WWWCNT15.ARJ / WWWCNT15 / WWWCNT15.ZIP / combine / combine.c < prev    next >
Encoding:
C/C++ Source or Header  |  1995-09-09  |  1.9 KB  |  106 lines

  1. /*
  2.  *  CombineImages - combines images and returns the final image
  3.  *
  4.  *  RCS:
  5.  *      $Revision: 1.3 $
  6.  *      $Date: 1995/07/16 17:03:54 $
  7.  *
  8.  *  Security:
  9.  *      Unclassified
  10.  *
  11.  *  Description:
  12.  *      text
  13.  *
  14.  *  Input Parameters:
  15.  *      type    identifier  description
  16.  *
  17.  *      text
  18.  *
  19.  *  Output Parameters:
  20.  *      type    identifier  description
  21.  *
  22.  *      text
  23.  *
  24.  *  Return Values:
  25.  *      value   description
  26.  *
  27.  *  Side Effects:
  28.  *      text
  29.  *
  30.  *  Limitations and Comments:
  31.  *      text
  32.  *
  33.  *  Development History:
  34.  *      who                 when        why
  35.  *      muquit@semcor.com   11-Jul-95   first cut
  36.  */
  37.  
  38. #include "combine.h"
  39. #include "defines.h"
  40.  
  41. Image *CombineImages (files,bwidth,bheight)
  42. char
  43.     *files;
  44. unsigned int
  45.     bwidth,
  46.     bheight;
  47. {
  48.    char
  49.         **p;
  50.  
  51.    char
  52.         *buf[50];
  53.  
  54.    Image
  55.         *base_image,
  56.         *sub_image;
  57.  
  58.    unsigned int
  59.         base_width,
  60.         base_height;
  61.  
  62.    base_width= 0;
  63.    base_height= 0;
  64.  
  65.    p = buf;
  66.    while (*files != '\0')
  67.    {
  68.         while (*files == ' ')
  69.             *files++ = '\0';
  70.  
  71.         *p++ = files;
  72.  
  73.         while ((*files != '\0') && (*files != ' '))
  74.             files++;
  75.    }
  76.    *p = '\0';
  77.  
  78.    base_image = CreateBaseImage (bwidth,bheight,0,0,0,DirectClass);
  79.  
  80.    for (p=buf; *p != '\0'; p++)
  81.    {
  82.         sub_image = ReadImage (*p);
  83.         if (sub_image != (Image *) NULL)
  84.         {
  85. #ifdef DEBUG
  86. (void) fprintf (stderr," sub_image->alpha: %d\n",sub_image->alpha);
  87. #endif
  88.             FlattenImage (base_image, sub_image, 
  89.                 ReplaceCompositeOp,base_width, 0);
  90.             base_width += sub_image->columns;
  91.             DestroyAnyImageStruct(&sub_image);
  92.         }
  93.         else
  94.         {
  95.             (void) fprintf (stderr," FAILED Combining digits!\n");
  96.              return ((Image *) NULL);
  97.         }
  98.    }
  99.    
  100.  
  101.    if (base_image == (Image *) NULL)
  102.         return ((Image *) NULL);
  103.  
  104.    return (base_image);
  105. }
  106.