Changeset 4769 for trunk/Ohana/src/kapa/graph/PNGit.c
- Timestamp:
- Aug 15, 2005, 3:00:59 PM (21 years ago)
- File:
-
- 1 edited
-
trunk/Ohana/src/kapa/graph/PNGit.c (modified) (10 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/Ohana/src/kapa/graph/PNGit.c
r2473 r4769 1 1 # include "Ximage.h" 2 2 # include <png.h> 3 # define NPALETTE NGRAPHCOLORS4 3 5 4 int PNGit () { … … 8 7 png_structp png_ptr; 9 8 png_infop info_ptr; 10 png_color palette[NPALETTE];11 int pchoice[NPALETTE];9 png_color *palette; 10 int *pchoice; 12 11 XColor color; 13 12 png_byte **rows; 14 13 int dx, dy; 15 14 int i, j, k, found; 15 int Npalette; 16 16 XImage *tmpimage; 17 17 unsigned long pixel; 18 18 char filename[1024]; 19 19 int Nbytes, status; 20 21 Npalette = GetColormapSize (); 22 ALLOCATE (pchoice, int, Npalette); 23 ALLOCATE (palette, png_color, Npalette); 20 24 21 25 dx = graphic.dx; … … 35 39 36 40 /* define the palette */ 37 for (i = 0; i < N PALETTE; i++) {41 for (i = 0; i < Npalette; i++) { 38 42 color.pixel = graphic.color[i]; 39 43 XQueryColor (graphic.display, graphic.colormap, &color); … … 47 51 if (f == (FILE *) NULL) { 48 52 fprintf (stderr, "can't open output file %s\n", "Xgraph.png"); 53 free (pchoice); 54 free (palette); 49 55 return (TRUE); /* true because otherwise it quits kapa! */ 50 56 } … … 54 60 fclose (f); 55 61 fprintf (stderr, "can't get png structure\n"); 62 free (pchoice); 63 free (palette); 56 64 return (TRUE); 57 65 } … … 62 70 fclose (f); 63 71 fprintf (stderr, "can't get png info structure\n"); 72 free (pchoice); 73 free (palette); 64 74 return (TRUE); 65 75 } … … 69 79 fclose (f); 70 80 fprintf (stderr, "can't get png return\n"); 81 free (pchoice); 82 free (palette); 71 83 return (TRUE); 72 84 } … … 80 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); */ 81 93 82 png_set_PLTE (png_ptr, info_ptr, palette, N PALETTE);94 png_set_PLTE (png_ptr, info_ptr, palette, Npalette); 83 95 84 96 png_write_info (png_ptr, info_ptr); … … 104 116 for (i = 0; i < dx; i++) { 105 117 pixel = XGetPixel (tmpimage, i, j); 106 for (found = k = 0; (k < N PALETTE) && !found; k++) {118 for (found = k = 0; (k < Npalette) && !found; k++) { 107 119 if (pixel == pchoice[k]) { 108 120 found = TRUE; … … 133 145 134 146 fclose (f); 147 free (pchoice); 148 free (palette); 135 149 return (TRUE); 136 150
Note:
See TracChangeset
for help on using the changeset viewer.
