IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Ignore:
Timestamp:
May 2, 2006, 9:19:22 AM (20 years ago)
Author:
eugene
Message:

removed old junk

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/Ohana/src/kapa/graph/PNGit.c

    r5610 r7040  
    11# include "Ximage.h"
    2 # include <png.h>
    32
    4 int PNGit_old () {
     3int PNGit () {
    54
    65  FILE *f;
     
    87  png_infop info_ptr;
    98  png_color *palette;
    10   int *pchoice;
    11   XColor color;
    12   png_byte **rows;
    13   int dx, dy;
    14   int i, j, k, found;
    159  int Npalette;
    16   XImage *tmpimage;
    17   unsigned long pixel;
    1810  char filename[1024];
    1911  int Nbytes, status;
    2012
    21   Npalette = GetColormapSize ();
    22   ALLOCATE (pchoice, int, Npalette);
    23   ALLOCATE (palette, png_color, Npalette);
     13  bDrawBuffer *buffer;
    2414
    25   dx = graphic.dx;
    26   dy = graphic.dy;
    27  
    2815  /* expect a line telling the number of bytes and a filename */
    2916  status = read (sock, filename, 16);
     
    3320  filename[status] = 0; /* make the string easy to parse */
    3421
    35   ALLOCATE (rows, png_byte *, dy);
    36   for (i = 0; i < dy; i++) {
    37     ALLOCATE (rows[i], png_byte, dx);
    38   }
    39 
    40   /* define the palette */
    41   for (i = 0; i < Npalette; i++) {
    42     color.pixel = graphic.color[i];
    43     XQueryColor (graphic.display, graphic.colormap, &color);
    44     palette[i].red = (0x100 * color.red / 0x10000);
    45     palette[i].green = (0x100 * color.green / 0x10000);
    46     palette[i].blue = (0x100 * color.blue / 0x10000);
    47     pchoice[i] = color.pixel;
    48   }
    49 
    5022  f = fopen (filename, "w");
    5123  if (f == (FILE *) NULL) {
    5224    fprintf (stderr, "can't open output file %s\n", "Xgraph.png");
    53     free (pchoice);
    54     free (palette);
    5525    return (TRUE);  /* true because otherwise it quits kapa! */
    5626  }
     
    5828  png_ptr = png_create_write_struct (PNG_LIBPNG_VER_STRING, (png_voidp) NULL, (png_voidp) NULL, (png_voidp) NULL);
    5929  if (!png_ptr) {
     30    fprintf (stderr, "can't get png structure\n");
    6031    fclose (f);
    61     fprintf (stderr, "can't get png structure\n");
    62     free (pchoice);
    63     free (palette);
    6432    return (TRUE);
    6533  }
     
    6735  info_ptr = png_create_info_struct (png_ptr);
    6836  if (!info_ptr) {
     37    fprintf (stderr, "can't get png info structure\n");
    6938    png_destroy_write_struct (&png_ptr, (png_infopp) NULL);
    7039    fclose (f);
    71     fprintf (stderr, "can't get png info structure\n");
    72     free (pchoice);
    73     free (palette);
    7440    return (TRUE);
    7541  }
    7642
    7743  if (setjmp (png_ptr[0].jmpbuf)) {
     44    fprintf (stderr, "can't get png return\n");
    7845    png_destroy_write_struct (&png_ptr, &info_ptr);
    7946    fclose (f);
    80     fprintf (stderr, "can't get png return\n");
    81     free (pchoice);
    82     free (palette);
    8347    return (TRUE);
    8448  }
     
    8852  /* see docs for write-row-callback to provide progress info */
    8953
    90   png_set_IHDR (png_ptr, info_ptr, dx, dy, 8, PNG_COLOR_TYPE_PALETTE, PNG_INTERLACE_NONE, PNG_COMPRESSION_TYPE_DEFAULT, PNG_FILTER_TYPE_DEFAULT);
     54  png_set_IHDR (png_ptr, info_ptr, graphic.dx, graphic.dy, 8, PNG_COLOR_TYPE_PALETTE, PNG_INTERLACE_NONE, PNG_COMPRESSION_TYPE_DEFAULT, PNG_FILTER_TYPE_DEFAULT);
    9155
    92   /* png_set_IHDR (png_ptr, info_ptr, dx, dy, 8, PNG_COLOR_TYPE_RGB, PNG_INTERLACE_NONE, PNG_COMPRESSION_TYPE_DEFAULT, PNG_FILTER_TYPE_DEFAULT); */
     56  /* png_set_IHDR (png_ptr, info_ptr, graphic.dx, graphic.dy, 8, PNG_COLOR_TYPE_RGB, PNG_INTERLACE_NONE, PNG_COMPRESSION_TYPE_DEFAULT, PNG_FILTER_TYPE_DEFAULT); */
    9357
     58  palette = KapaPNGPalette (&Npalette);
    9459  png_set_PLTE (png_ptr, info_ptr, palette, Npalette);
    9560 
    9661  png_write_info (png_ptr, info_ptr);
    9762
    98   /* a new attempt... */
     63  buffer = bDrawIt ();
    9964
    100   {
    101     XWindowAttributes WindowAttributes;
    102     Pixmap tmp_pixmap;
    103     Window tmp_window;
    104    
    105     XGetWindowAttributes (graphic.display, graphic.window, &WindowAttributes);
    106    
    107     tmp_pixmap = XCreatePixmap (graphic.display, graphic.window, dx, dy, WindowAttributes.depth);
    108 
    109     tmp_window = graphic.window;
    110     graphic.window = tmp_pixmap;
    111 
    112     Refresh (1);
    113 
    114     tmpimage = XGetImage (graphic.display, graphic.window, 0, 0, dx, dy, 0xffffffff, ZPixmap);
    115     for (j = 0; j < dy; j++) {
    116       for (i = 0; i < dx; i++) {
    117         pixel = XGetPixel (tmpimage, i, j);
    118         for (found = k = 0; (k < Npalette) && !found; k++) {
    119           if (pixel == pchoice[k]) {
    120             found = TRUE;
    121             rows[j][i] = k;
    122           }
    123         }
    124       }
    125     }
    126     graphic.window = tmp_window;
    127     XFreePixmap (graphic.display, tmp_pixmap);
    128   }
    129 
    130   png_write_image (png_ptr, rows);
     65  png_write_image (png_ptr, buffer[0].pixels);
    13166  png_write_end (png_ptr, info_ptr);
    13267  png_destroy_write_struct (&png_ptr, &info_ptr);
    133 
    134   for (i = 0; i < dy; i++) {
    135     free (rows[i]);
    136   }
    137   free (rows);
    138 
    139   XDestroyImage (tmpimage);
    140 
     68 
     69  bDrawBufferFree (buffer);
     70  free (palette);
    14171  fclose (f);
    142   free (pchoice);
    143   free (palette);
    14472  return (TRUE);
    14573
Note: See TracChangeset for help on using the changeset viewer.