summaryrefslogtreecommitdiffstats
path: root/hl
diff options
context:
space:
mode:
authorPedro Vicente Nunes <pvn@hdfgroup.org>2007-04-09 18:24:48 (GMT)
committerPedro Vicente Nunes <pvn@hdfgroup.org>2007-04-09 18:24:48 (GMT)
commite0a10e1fb9e4eb5da29a9ad0c63a2e2142a6465c (patch)
treece35288fad82cf43d7ef62bed1d34df3192fe4d3 /hl
parentae996ac158ffc81939091eee31a647eedd59154e (diff)
downloadhdf5-e0a10e1fb9e4eb5da29a9ad0c63a2e2142a6465c.zip
hdf5-e0a10e1fb9e4eb5da29a9ad0c63a2e2142a6465c.tar.gz
hdf5-e0a10e1fb9e4eb5da29a9ad0c63a2e2142a6465c.tar.bz2
[svn-r13614]
bug fixes substituted hize_t array index variables for int stack corruption in the h52gif reading routine, wrote a new routine shell script for gif tests, added check of program return value tested: linux pgcc, solaris, linux 64
Diffstat (limited to 'hl')
-rw-r--r--hl/test/test_image.c34
-rw-r--r--hl/test/test_table.c117
-rw-r--r--hl/tools/gif2h5/Makefile.in6
-rw-r--r--hl/tools/gif2h5/h52gifgentst.c2
-rw-r--r--hl/tools/gif2h5/h52giftest.sh36
-rw-r--r--hl/tools/gif2h5/hdf2gif.c256
-rw-r--r--hl/tools/gif2h5/readhdf.c255
-rw-r--r--hl/tools/testfiles/h52giftst.h5bin82816 -> 82816 bytes
8 files changed, 234 insertions, 472 deletions
diff --git a/hl/test/test_image.c b/hl/test/test_image.c
index c5de745..9c29118 100644
--- a/hl/test/test_image.c
+++ b/hl/test/test_image.c
@@ -18,8 +18,8 @@
#define FILE_NAME "test_image.h5"
-#define WIDTH (hsize_t)400
-#define HEIGHT (hsize_t)200
+#define WIDTH 400
+#define HEIGHT 200
#define PAL_ENTRIES 256
#define IMAGE1_NAME "image1"
#define IMAGE2_NAME "image2"
@@ -32,11 +32,11 @@
*/
int main( void )
{
- hsize_t width, height, planes;
+ hsize_t width = WIDTH;
+ hsize_t height = HEIGHT;
+ hsize_t planes;
hid_t fid;
int i, j, n, space;
- int iWIDTH = (int) WIDTH;
- int iHEIGHT = (int) HEIGHT;
char interlace[20];
hssize_t npals;
@@ -55,8 +55,8 @@ int main( void )
hsize_t pal_dims_out[2]; /* palette dimensions */
/* create an image */
- space = iWIDTH*iHEIGHT / PAL_ENTRIES;
- for (i=0, j=0, n=0; i < iWIDTH*iHEIGHT; i++, j++ )
+ space = WIDTH*HEIGHT / PAL_ENTRIES;
+ for (i=0, j=0, n=0; i < WIDTH*HEIGHT; i++, j++ )
{
buf1[i] = n;
if ( j > space )
@@ -64,21 +64,25 @@ int main( void )
n++;
j=0;
}
- if (n>PAL_ENTRIES-1) n=0;
+
}
/* create an image */
- space = iWIDTH*iHEIGHT / PAL_ENTRIES;
- for (i=0, j=0, n=0; i < iWIDTH*iHEIGHT*3; i++, j++ )
+ space = WIDTH*HEIGHT / 256;
+ for (i=0, j=0, n=0; i < WIDTH*HEIGHT*3; i+=3, j++ )
{
- buf2[i] = n;
+ unsigned char r, g, b;
+
+ r = n; g = 0; b = 255-n;
+ buf2[i] = r;
+ buf2[i+1] = g;
+ buf2[i+2] = b;
if ( j > space )
{
n++;
j=0;
}
- if (n>PAL_ENTRIES-1) n=0;
}
/*-------------------------------------------------------------------------
@@ -103,7 +107,7 @@ int main( void )
TESTING("indexed image");
/* Write image */
- if ( H5IMmake_image_8bit( fid, IMAGE1_NAME, WIDTH, HEIGHT, buf1 ) < 0 )
+ if ( H5IMmake_image_8bit( fid, IMAGE1_NAME, width, height, buf1 ) < 0 )
goto out;
/* Make a palette */
@@ -139,7 +143,7 @@ int main( void )
TESTING("true color image");
/* Write image */
- if ( H5IMmake_image_24bit( fid, IMAGE2_NAME, WIDTH, HEIGHT, "INTERLACE_PIXEL", buf2 ) )
+ if ( H5IMmake_image_24bit( fid, IMAGE2_NAME, width, height, "INTERLACE_PIXEL", buf2 ) )
goto out;
/* Read image */
@@ -158,7 +162,7 @@ int main( void )
PASSED();
- /*-------------------------------------------------------------------------
+ /*-------------------------------------------------------------------------
* H5IMget_npalettes test
*-------------------------------------------------------------------------
*/
diff --git a/hl/test/test_table.c b/hl/test/test_table.c
index 279ed0e..fba7582 100644
--- a/hl/test/test_table.c
+++ b/hl/test/test_table.c
@@ -54,9 +54,9 @@
*/
#define TITLE "Title"
-#define NFIELDS (hsize_t)5
-#define NRECORDS (hsize_t)8
-#define NRECORDS_ADD (hsize_t)3
+#define NFIELDS 5
+#define NRECORDS 8
+#define NRECORDS_ADD 3
#define TESTING2(WHAT) {printf("%-70s", "Testing " WHAT); fflush(stdout);}
@@ -150,11 +150,10 @@ int test_table(hid_t fid, int write)
/* indices */
int i, j;
- int iNRECORDS = (int)NRECORDS;
- int iNRECORDS_ADD = (int)NRECORDS_ADD;
-
/* write, read, append, delete, insert some records and fields */
+ hsize_t FIELDS = NFIELDS;
+ hsize_t RECORDS = NRECORDS;
hsize_t start;
hsize_t wstart;
hsize_t rstart;
@@ -354,7 +353,7 @@ int test_table(hid_t fid, int write)
{
TESTING2("making table");
- if (H5TBmake_table(TITLE,fid,"table1",NFIELDS,NRECORDS,type_size_mem,
+ if (H5TBmake_table(TITLE,fid,"table1",FIELDS,RECORDS,type_size_mem,
field_names,field_offset,field_type,
chunk_size,fill,compress,wbuf)<0)
goto out;
@@ -373,7 +372,7 @@ int test_table(hid_t fid, int write)
goto out;
/* compare the extracted table with the original array */
- for( i = 0; i < iNRECORDS; i++ )
+ for( i = 0; i < NRECORDS; i++ )
{
if (cmp_par(i,i,rbuf,wbuf)<0)
goto out;
@@ -395,7 +394,7 @@ int test_table(hid_t fid, int write)
TESTING2("writing records");
/* create an empty table */
- if (H5TBmake_table(TITLE,fid,"table2",NFIELDS,NRECORDS,type_size_mem,
+ if (H5TBmake_table(TITLE,fid,"table2",FIELDS,RECORDS,type_size_mem,
field_names,field_offset,field_type,
chunk_size,fill,compress,0)<0)
goto out;
@@ -416,7 +415,7 @@ int test_table(hid_t fid, int write)
goto out;
/* compare */
- for( i = 0; i < iNRECORDS; i++ )
+ for( i = 0; i < NRECORDS; i++ )
{
if (cmp_par(i,i,rbuf,wbuf)<0)
goto out;
@@ -459,7 +458,7 @@ int test_table(hid_t fid, int write)
goto out;
/* compare */
- for( i=rstart; i<rrecords; i++)
+ for( i=(int)rstart; i<(int)rrecords; i++)
{
if (cmp_par(i,i,rbuf,wbuf)<0)
goto out;
@@ -499,12 +498,12 @@ int test_table(hid_t fid, int write)
/* compare */
wrecords=8;
- for( i=rstart; i<wrecords; i++)
+ for( i=(int)rstart; i<(int)wrecords; i++)
{
if (cmp_par(i,i,rbuf,wbuf)<0)
goto out;
}
- for( i=wrecords, j=0; i<rrecords; i++,j++)
+ for( i=(int)wrecords, j=0; i<(int)rrecords; i++,j++)
{
if (cmp_par(i,j,rbuf,abuf)<0)
goto out;
@@ -550,15 +549,15 @@ int test_table(hid_t fid, int write)
if (cmp_par(i,i,rbuf,wbuf)<0)
goto out;
}
- else if (i>=istart && i<istart+irecords)
+ else if (i>=(int)istart && i<(int)istart+(int)irecords)
{
- j=i-istart;
+ j=i-(int)istart;
if (cmp_par(i,j,rbuf,ibuf)<0)
goto out;
}
- else if (i>=istart+irecords && i<10)
+ else if (i>=(int)istart+(int)irecords && i<10)
{
- j=i-irecords;
+ j=i-(int)irecords;
if (cmp_par(i,j,rbuf,wbuf)<0)
goto out;
}
@@ -592,7 +591,7 @@ int test_table(hid_t fid, int write)
*-------------------------------------------------------------------------
*/
- for( i=0; i<iNRECORDS; i++)
+ for( i=0; i<NRECORDS; i++)
{
wbufd[i].lati = wbuf[i].lati;
wbufd[i].longi = wbuf[i].longi;
@@ -603,7 +602,7 @@ int test_table(hid_t fid, int write)
}
- if (H5TBmake_table(TITLE,fid,"table3",NFIELDS,NRECORDS,type_size_mem,
+ if (H5TBmake_table(TITLE,fid,"table3",FIELDS,RECORDS,type_size_mem,
field_names,field_offset,field_type,
chunk_size,fill,compress,wbufd)<0)
goto out;
@@ -762,11 +761,11 @@ int test_table(hid_t fid, int write)
TESTING2("adding records");
/* create 2 tables */
- if (H5TBmake_table(TITLE,fid,"table4",NFIELDS,NRECORDS,type_size_mem,
+ if (H5TBmake_table(TITLE,fid,"table4",FIELDS,RECORDS,type_size_mem,
field_names,field_offset,field_type,
chunk_size,fill,compress,wbuf)<0)
goto out;
- if (H5TBmake_table(TITLE,fid,"table5",NFIELDS,NRECORDS,type_size_mem,
+ if (H5TBmake_table(TITLE,fid,"table5",FIELDS,RECORDS,type_size_mem,
field_names,field_offset,field_type,
chunk_size,fill,compress,wbuf)<0)
goto out;
@@ -783,22 +782,22 @@ int test_table(hid_t fid, int write)
goto out;
/* compare */
- for( i = 0; i < iNRECORDS+2; i++ )
+ for( i = 0; i < NRECORDS+2; i++ )
{
if ( i < start2 )
{
if (cmp_par(i,i,rbuf,wbuf)<0)
goto out;
}
- else if ( i < start2+nrecords )
+ else if ( i < (int)start2+(int)nrecords )
{
- j = i-start1;
+ j = i-(int)start1;
if (cmp_par(i,j,rbuf,wbuf)<0)
goto out;
}
else
{
- j = i-nrecords;
+ j = i-(int)nrecords;
if (cmp_par(i,j,rbuf,wbuf)<0)
goto out;
}
@@ -822,11 +821,11 @@ int test_table(hid_t fid, int write)
TESTING2("combining tables");
/* create 2 tables */
- if (H5TBmake_table(TITLE,fid,"table6",NFIELDS,NRECORDS,type_size_mem,
+ if (H5TBmake_table(TITLE,fid,"table6",FIELDS,RECORDS,type_size_mem,
field_names,field_offset,field_type,
chunk_size,fill,compress,wbuf)<0)
goto out;
- if (H5TBmake_table(TITLE,fid,"table7",NFIELDS,NRECORDS,type_size_mem,
+ if (H5TBmake_table(TITLE,fid,"table7",FIELDS,RECORDS,type_size_mem,
field_names,field_offset,field_type,
chunk_size,fill,compress,wbuf)<0)
goto out;
@@ -840,16 +839,16 @@ int test_table(hid_t fid, int write)
goto out;
/* compare */
- for( i = 0; i < iNRECORDS*2; i++ )
+ for( i = 0; i < NRECORDS*2; i++ )
{
- if ( i < iNRECORDS )
+ if ( i < NRECORDS )
{
if (cmp_par(i,i,rbufc,wbuf)<0)
goto out;
}
else
{
- if (cmp_par(i,i-iNRECORDS,rbufc,wbuf)<0)
+ if (cmp_par(i,i-NRECORDS,rbufc,wbuf)<0)
goto out;
}
}
@@ -864,11 +863,11 @@ int test_table(hid_t fid, int write)
fid2 = H5Fcreate("combine_tables2.h5",H5F_ACC_TRUNC,H5P_DEFAULT,H5P_DEFAULT);
/* create 2 tables, one in each file */
- if (H5TBmake_table(TITLE,fid1,"table1",NFIELDS,NRECORDS,type_size_mem,
+ if (H5TBmake_table(TITLE,fid1,"table1",FIELDS,RECORDS,type_size_mem,
field_names,field_offset,field_type,
chunk_size,fill,compress,wbuf)<0)
goto out;
- if (H5TBmake_table(TITLE,fid2,"table2",NFIELDS,NRECORDS,type_size_mem,
+ if (H5TBmake_table(TITLE,fid2,"table2",FIELDS,RECORDS,type_size_mem,
field_names,field_offset,field_type,
chunk_size,fill,compress,wbuf)<0)
goto out;
@@ -882,16 +881,16 @@ int test_table(hid_t fid, int write)
goto out;
/* compare */
- for( i = 0; i < iNRECORDS*2; i++ )
+ for( i = 0; i < NRECORDS*2; i++ )
{
- if ( i < iNRECORDS )
+ if ( i < NRECORDS )
{
if (cmp_par(i,i,rbufc,wbuf)<0)
goto out;
}
else
{
- if (cmp_par(i,i-iNRECORDS,rbufc,wbuf)<0)
+ if (cmp_par(i,i-NRECORDS,rbufc,wbuf)<0)
goto out;
}
}
@@ -917,7 +916,7 @@ int test_table(hid_t fid, int write)
TESTING2("writing fields by name");
/* make an empty table with fill values */
- if (H5TBmake_table(TITLE,fid,"table9",NFIELDS,NRECORDS,type_size_mem,
+ if (H5TBmake_table(TITLE,fid,"table9",FIELDS,RECORDS,type_size_mem,
field_names,field_offset,field_type,
chunk_size,fill1,compress,0)<0)
goto out;
@@ -946,13 +945,13 @@ int test_table(hid_t fid, int write)
/* compare the read values with the initial values */
- for( i = 0; i < iNRECORDS; i++ )
+ for( i = 0; i < NRECORDS; i++ )
{
if ( i >= 2 && i <= 4 )
{
- if ( rbuf[i].lati != position_in[i-iNRECORDS_ADD+1].lati ||
- rbuf[i].longi != position_in[i-iNRECORDS_ADD+1].longi ||
- rbuf[i].pressure != pressure_in[i-iNRECORDS_ADD+1] )
+ if ( rbuf[i].lati != position_in[i-NRECORDS_ADD+1].lati ||
+ rbuf[i].longi != position_in[i-NRECORDS_ADD+1].longi ||
+ rbuf[i].pressure != pressure_in[i-NRECORDS_ADD+1] )
{
fprintf(stderr,"%ld %f %d\n",
rbuf[i].longi,rbuf[i].pressure,rbuf[i].lati);
@@ -985,7 +984,7 @@ int test_table(hid_t fid, int write)
*/
if (write)
{
- if (H5TBmake_table(TITLE,fid,"table10",NFIELDS,NRECORDS,type_size_mem,
+ if (H5TBmake_table(TITLE,fid,"table10",FIELDS,RECORDS,type_size_mem,
field_names,field_offset,field_type,
chunk_size,fill1,compress,0)<0)
goto out;
@@ -1007,7 +1006,7 @@ int test_table(hid_t fid, int write)
/* Compare the extracted table with the initial values */
- for( i = 0; i < iNRECORDS; i++ )
+ for( i = 0; i < NRECORDS; i++ )
{
if ( pressure_out[i] != pressure_in[i] ) {
goto out;
@@ -1037,7 +1036,7 @@ int test_table(hid_t fid, int write)
/* Compare the extracted table with the initial values */
- for( i = 0; i < iNRECORDS_ADD; i++ )
+ for( i = 0; i < NRECORDS_ADD; i++ )
{
if ( position_out[i].lati != position_in[i].lati ||
position_out[i].longi != position_in[i].longi )
@@ -1069,7 +1068,7 @@ int test_table(hid_t fid, int write)
/* Compare the extracted table with the initial values */
- for( i = 0; i < iNRECORDS; i++ )
+ for( i = 0; i < NRECORDS; i++ )
{
if ( ( strcmp( namepre_out[i].name, namepre_in[i].name ) != 0 ) ||
namepre_out[i].pressure != namepre_in[i].pressure ) {
@@ -1078,7 +1077,7 @@ int test_table(hid_t fid, int write)
}
/* reset buffer */
- for( i = 0; i < iNRECORDS; i++ )
+ for( i = 0; i < NRECORDS; i++ )
{
strcpy( namepre_out[i].name, "\0" );
namepre_out[i].pressure = -1;
@@ -1123,7 +1122,7 @@ int test_table(hid_t fid, int write)
TESTING2("writing fields by index");
/* make an empty table */
- if (H5TBmake_table(TITLE,fid,"table11",NFIELDS,NRECORDS,type_size_mem,
+ if (H5TBmake_table(TITLE,fid,"table11",FIELDS,RECORDS,type_size_mem,
field_names,field_offset,field_type,
chunk_size,fill,compress,NULL)<0)
goto out;
@@ -1154,13 +1153,13 @@ int test_table(hid_t fid, int write)
goto out;
/* Compare the extracted table with the initial values */
- for( i = 0; i < iNRECORDS; i++ )
+ for( i = 0; i < NRECORDS; i++ )
{
if ( i >= 2 && i <= 4 )
{
- if ( rbuf[i].lati != position_in[i-iNRECORDS_ADD+1].lati ||
- rbuf[i].longi != position_in[i-iNRECORDS_ADD+1].longi ||
- rbuf[i].pressure != pressure_in[i-iNRECORDS_ADD+1] )
+ if ( rbuf[i].lati != position_in[i-NRECORDS_ADD+1].lati ||
+ rbuf[i].longi != position_in[i-NRECORDS_ADD+1].longi ||
+ rbuf[i].pressure != pressure_in[i-NRECORDS_ADD+1] )
goto out;
}
}
@@ -1183,7 +1182,7 @@ int test_table(hid_t fid, int write)
if (write)
{
/* make an empty table */
- if (H5TBmake_table(TITLE,fid,"table12",NFIELDS,NRECORDS,type_size_mem,
+ if (H5TBmake_table(TITLE,fid,"table12",FIELDS,RECORDS,type_size_mem,
field_names,field_offset,field_type,
chunk_size,fill,compress,NULL)<0)
goto out;
@@ -1211,7 +1210,7 @@ int test_table(hid_t fid, int write)
goto out;
/* compare the extracted table with the initial values */
- for( i = 0; i < iNRECORDS; i++ )
+ for( i = 0; i < NRECORDS; i++ )
{
if ( pressure_out[i] != pressure_in[i] ) {
goto out;
@@ -1242,7 +1241,7 @@ int test_table(hid_t fid, int write)
goto out;
/* compare the extracted table with the initial values */
- for( i = 0; i < iNRECORDS_ADD; i++ )
+ for( i = 0; i < NRECORDS_ADD; i++ )
{
if ( position_out[i].lati != position_in[i].lati ||
position_out[i].longi != position_in[i].longi ) {
@@ -1276,7 +1275,7 @@ int test_table(hid_t fid, int write)
goto out;
/* compare the extracted table with the initial values */
- for( i = 0; i < iNRECORDS; i++ )
+ for( i = 0; i < NRECORDS; i++ )
{
if ( ( strcmp( namepre_out[i].name, namepre_in[i].name ) != 0 ) ||
namepre_out[i].pressure != namepre_in[i].pressure ) {
@@ -1285,7 +1284,7 @@ int test_table(hid_t fid, int write)
}
/* reset buffer */
- for( i = 0; i < iNRECORDS; i++ )
+ for( i = 0; i < NRECORDS; i++ )
{
strcpy( namepre_out[i].name, "\0" );
namepre_out[i].pressure = -1;
@@ -1332,7 +1331,7 @@ int test_table(hid_t fid, int write)
TESTING2("inserting fields");
/* make a table */
- if (H5TBmake_table(TITLE,fid,"table13",NFIELDS,NRECORDS,type_size_mem,
+ if (H5TBmake_table(TITLE,fid,"table13",FIELDS,RECORDS,type_size_mem,
field_names,field_offset,field_type,
chunk_size,fill1,compress,wbuf)<0)
goto out;
@@ -1348,7 +1347,7 @@ int test_table(hid_t fid, int write)
goto out;
/* compare the extracted table with the original array */
- for( i = 0; i < iNRECORDS; i++ )
+ for( i = 0; i < NRECORDS; i++ )
{
if ( ( strcmp( rbuf2[i].name, wbuf[i].name ) != 0 ) ||
rbuf2[i].lati != wbuf[i].lati ||
@@ -1376,7 +1375,7 @@ int test_table(hid_t fid, int write)
TESTING2("deleting fields");
/* make a table */
- if (H5TBmake_table(TITLE,fid,"table14",NFIELDS,NRECORDS,type_size_mem,
+ if (H5TBmake_table(TITLE,fid,"table14",FIELDS,RECORDS,type_size_mem,
field_names,field_offset,field_type,
chunk_size,fill,compress,wbuf)<0)
goto out;
@@ -1391,7 +1390,7 @@ int test_table(hid_t fid, int write)
goto out;
/* compare the extracted table with the original array */
- for( i = 0; i < iNRECORDS; i++ )
+ for( i = 0; i < NRECORDS; i++ )
{
if ( ( strcmp( rbuf3[i].name, wbuf[i].name ) != 0 ) ||
rbuf3[i].lati != wbuf[i].lati ||
diff --git a/hl/tools/gif2h5/Makefile.in b/hl/tools/gif2h5/Makefile.in
index e402c83..1022add 100644
--- a/hl/tools/gif2h5/Makefile.in
+++ b/hl/tools/gif2h5/Makefile.in
@@ -48,7 +48,7 @@ PUB_LIB=
## Source and object files for programs...
##
-PROG_SRC=decompress.c gif2hdf.c gif2mem.c gifread.c hdf2gif.c hdfgifwr.c readhdf.c writehdf.c
+PROG_SRC=decompress.c gif2hdf.c gif2mem.c gifread.c hdf2gif.c hdfgifwr.c writehdf.c
PROG_OBJ=$(PROG_SRC:.c=.lo)
PRIVATE_HDR=gif.h
@@ -77,8 +77,8 @@ $(PROGS): $(LIBHDF5_HL) $(LIBTOOLS) $(LIBHDF5)
gif2h5: gif2hdf.lo gif2mem.lo decompress.lo gifread.lo writehdf.lo
@$(LT_LINK_EXE) $(CFLAGS) -o $@ gif2hdf.lo gif2mem.lo decompress.lo gifread.lo writehdf.lo $(LIBHDF5_HL) $(LIBTOOLS) $(LIBHDF5) $(LDFLAGS) $(LIBS)
-h52gif: hdf2gif.lo hdfgifwr.lo readhdf.lo
- @$(LT_LINK_EXE) $(CFLAGS) -o $@ hdf2gif.lo hdfgifwr.lo readhdf.lo $(LIBHDF5_HL) $(LIBTOOLS) $(LIBHDF5) $(LDFLAGS) $(LIBS)
+h52gif: hdf2gif.lo hdfgifwr.lo
+ @$(LT_LINK_EXE) $(CFLAGS) -o $@ hdf2gif.lo hdfgifwr.lo $(LIBHDF5_HL) $(LIBTOOLS) $(LIBHDF5) $(LDFLAGS) $(LIBS)
h52gifgentst: h52gifgentst.lo
@$(LT_LINK_EXE) $(CFLAGS) -o $@ h52gifgentst.lo $(LIBHDF5_HL) $(LIBTOOLS) $(LIBHDF5) $(LDFLAGS) $(LIBS)
diff --git a/hl/tools/gif2h5/h52gifgentst.c b/hl/tools/gif2h5/h52gifgentst.c
index d25b8ac..57afdb0 100644
--- a/hl/tools/gif2h5/h52gifgentst.c
+++ b/hl/tools/gif2h5/h52gifgentst.c
@@ -36,7 +36,7 @@
#define WIDTH (hsize_t)400
#define HEIGHT (hsize_t)200
#define PAL_ENTRIES 256
-#define IMAGE1_NAME "12345678"
+#define IMAGE1_NAME "image"
#define PAL_NAME "palette"
/*-------------------------------------------------------------------------
diff --git a/hl/tools/gif2h5/h52giftest.sh b/hl/tools/gif2h5/h52giftest.sh
index 1300f03..80f6910 100644
--- a/hl/tools/gif2h5/h52giftest.sh
+++ b/hl/tools/gif2h5/h52giftest.sh
@@ -15,6 +15,7 @@
#
# HDF Utilities Test script
+
TESTFILE1="$srcdir/../testfiles/h52giftst.h5"
TESTFILE2="$srcdir/../testfiles/image1.gif"
@@ -26,36 +27,39 @@ TESTING() {
echo "Testing $* $SPACES" | cut -c1-70 | tr -d '\012'
}
+
+
TOOLTEST1()
{
-err=0
-$RUNSERIAL ./h52gif $*
-
-if [ $err -eq 1 ]; then
-errors="` expr $errors + 1 `";
+ $RUNSERIAL ./h52gif $*
+
+ RET=$?
+ if [ $RET != 0 ] ; then
echo "*FAILED*"
-else
+ errors="` expr $errors + 1 `";
+ else
echo " PASSED"
-fi
+ fi
+
}
TOOLTEST2()
{
-err=0
-$RUNSERIAL ./gif2h5 $*
-
-if [ $err -eq 1 ]; then
-errors="` expr $errors + 1 `";
+ $RUNSERIAL ./gif2h5 $*
+
+ RET=$?
+ if [ $RET != 0 ] ; then
echo "*FAILED*"
-else
+ errors="` expr $errors + 1 `";
+ else
echo " PASSED"
-fi
+ fi
}
-TESTING "./h52gif h52giftst.h5 image1.gif -i 12345678 -p palette"
-TOOLTEST1 $TESTFILE1 image1.gif -i 12345678 -p palette
+TESTING "./h52gif h52giftst.h5 image1.gif -i image"
+TOOLTEST1 $TESTFILE1 image1.gif -i image
TESTING "./gif2h5 image1.gif image1.h5"
TOOLTEST2 $TESTFILE2 image1.h5
diff --git a/hl/tools/gif2h5/hdf2gif.c b/hl/tools/gif2h5/hdf2gif.c
index 8f06bd2..f6a9944 100644
--- a/hl/tools/gif2h5/hdf2gif.c
+++ b/hl/tools/gif2h5/hdf2gif.c
@@ -28,6 +28,8 @@
#include <stdio.h>
#include <assert.h>
#include "gif.h"
+#include "H5IM.h"
+
#define MAX_FILE_LEN 256
#define MAX_NUMBER_IMAGES 50
@@ -56,27 +58,21 @@ putword(int w, FILE *fp)
static void
usage(void)
{
- printf("Usage: h52gif <h5_file> <gif_file> -i <h5_image> [-p <h5_palette>]\n");
+ printf("Usage: h52gif <h5_file> <gif_file> -i <h5_image>\n");
printf("h52gif expects *at least* one h5_image.\n");
- printf("You may repeat -i <h5_image> [-p <h5_palette>] at most 50 times\n");
+ printf("You may repeat -i <h5_image> at most 50 times\n");
printf("(maximum of 50 images).\n");
}
FILE *fpGif = NULL;
int main(int argc , char **argv)
{
-
-
- hsize_t dim_sizes[2];
BYTE *Image;
/* compression structs */
CHAR *HDFName = NULL;
CHAR *GIFName = NULL;
- /* reference variables */
- int has_local_palette; /* treated as a flag */
-
BYTE* b;
BYTE GlobalPalette[256][3];
@@ -85,16 +81,10 @@ int main(int argc , char **argv)
BYTE Blue[256];
int RWidth, RHeight;
-#ifdef UNUSED
- int LeftOfs, TopOfs;
- int CountDown;
- int curx , cury;
- int w,h;
-#endif /* UNUSED */
int ColorMapSize, InitCodeSize, Background, BitsPerPixel;
int j,nc;
int i;
- int numcols = 256;
+ int numcols;
int time_out = 0; /* time between two images in the animation */
int n_images , idx;
@@ -104,128 +94,125 @@ int main(int argc , char **argv)
int number_of_images = 0;
int arg_index = 2;
int bool_is_image = 0; /* 0 = false , 1 = true */
- int bool_is_palette = 0;
CHAR* image_name_arr[MAX_NUMBER_IMAGES];
- CHAR* pal_name_arr[MAX_NUMBER_IMAGES];
- if (argc < 5) {
+ if (argc < 4)
+ {
/* they didn't supply at least one image -- bail */
usage();
- return 0;
+ return 1;
}
memset(image_name_arr , 0 , MAX_NUMBER_IMAGES);
- memset(pal_name_arr , 0 , MAX_NUMBER_IMAGES);
- HDFName = (CHAR *)malloc (strlen(argv[1]) + 1);
- GIFName = (CHAR *)malloc (strlen(argv[2]) + 1);
-
- if (strlen(argv[1] + 1) > MAX_FILE_LEN || strlen(argv[2] + 1) > MAX_FILE_LEN) {
+ if (strlen(argv[1] + 1) > MAX_FILE_LEN || strlen(argv[2] + 1) > MAX_FILE_LEN)
+ {
/* supplied file names are too long. bail. */
usage();
printf("Supplied filenames exceed maximum length of 256 bytes\n");
}
- strcpy(HDFName , argv[1]);
- strcpy(GIFName , argv[2]);
+ HDFName = argv[1];
+ GIFName = argv[2];
/* get the options */
- while (arg_index++ < argc - 1 && number_of_images < MAX_NUMBER_IMAGES) {
+ while (arg_index++ < argc - 1 && number_of_images < MAX_NUMBER_IMAGES)
+ {
if (!strcmp(argv[arg_index] , "-i")) {
bool_is_image = 1;
continue;
}
- if (!strcmp(argv[arg_index] , "-p")) {
- bool_is_palette = 1;
- continue;
- }
-
if (!strcmp(argv[arg_index] , "-a")) {
time_out = 10;
continue;
}
- if (bool_is_image) {
+ if (bool_is_image)
+ {
/* this is an image */
/* allocate space to store the image name */
size_t len = strlen(argv[arg_index]);
image_name_arr[number_of_images] = (CHAR*) malloc( len + 1);
strcpy(image_name_arr[number_of_images] , argv[arg_index]);
- /* make the palette array for this NULL */
- pal_name_arr[number_of_images] = NULL;
number_of_images++;
bool_is_image = 0;
continue;
}
- if (bool_is_palette) {
- /* this is a palette */
- /* allocate space to store the pal name */
- /* the palette was probably allocated for a previous image */
- size_t len = strlen(argv[arg_index]);
- pal_name_arr[number_of_images-1] = (CHAR*) malloc( len + 1);
- strcpy(pal_name_arr[number_of_images - 1], argv[arg_index]);
- bool_is_palette = 0;
- continue;
- }
-
/* oops. This was not meant to happen */
usage();
- while (number_of_images--) {
- cleanup(image_name_arr[number_of_images]);
- cleanup(pal_name_arr[number_of_images]);
- }
-
- return -1;
+ goto out;
}
- /* we shall always have a palette - read hdf will see to that */
- has_local_palette = true;
-
- /* Do Endian Order testing and set Endian Order */
+ /* Do Endian Order testing and set Endian Order */
idx = 0x0001;
b = (BYTE *) &idx;
EndianOrder = (b[0] ? 1:0);
- if (!(fpGif = fopen(GIFName , "wb"))) {
+ if (!(fpGif = fopen(GIFName , "wb")))
+ {
printf("Error opening gif file for output. Aborting.\n");
- return -1;
+ goto out;
}
/* hardwire n_images to 1 for now. */
n_images = number_of_images;
Background = 0;
- for (idx = 0 ; idx < n_images ; idx++) {
- /* try to read the image and the palette */
-
- /*
- * Lots of funky stuff to support multiple images has been taken off.
- * Just in case you're extending code, here's what you need to do in
- * short: figure out if there is a global palette or not, if there is
- * one store that one only. If they are all local or a combination of
- * local and global palettes, you will have to write the global
- * palette out and then independantly write the smaller local palettes
- */
- if (ReadHDF(&Image, GlobalPalette, dim_sizes, HDFName,
- image_name_arr[idx], pal_name_arr[idx]) < 0) {
- fprintf(stderr , "Unable to read image %s from HDF file %s\n",image_name_arr[idx],HDFName);
- return -1;
+ for (idx = 0 ; idx < n_images ; idx++)
+ {
+
+ hsize_t width, height, planes;
+ hid_t fid;
+ char interlace[20];
+ hssize_t npals;
+ hsize_t pal_dims[2];
+ unsigned char *pal;
+ char *image_name = image_name_arr[idx];
+
+ if ((fid = H5Fopen(HDFName , H5F_ACC_RDONLY , H5P_DEFAULT)) < 0) {
+ fprintf(stderr , "Unable to open HDF file for input. Aborting.\n");
+ goto out;
}
+
+ /* read image */
+ if ( H5IMget_image_info( fid, image_name, &width, &height, &planes, interlace, &npals ) < 0 )
+ goto out;
+
+ Image = (BYTE*) malloc( (size_t) width * (size_t) height );
+
+ if ( H5IMread_image( fid, image_name, Image ) < 0 )
+ goto out;
+
+ if (npals)
+ {
+ if ( H5IMget_palette_info( fid, image_name, 0, pal_dims ) < 0 )
+ goto out;
+
+ pal = (BYTE*) malloc( (size_t) pal_dims[0] * (size_t) pal_dims[1] );
+
+ if ( H5IMget_palette( fid, image_name, 0, pal ) < 0 )
+ goto out;
+
+ numcols = (int) pal_dims[0];
+
+ for (i = 0, j = 0 ; i < numcols ; j+=3, i++)
+ {
+ GlobalPalette[i][0] = pal[j];
+ GlobalPalette[i][1] = pal[j+1];
+ GlobalPalette[i][2] = pal[j+2];
+ }
- assert(dim_sizes[0]==(hsize_t)((int)dim_sizes[0]));
- assert(dim_sizes[1]==(hsize_t)((int)dim_sizes[1]));
- RWidth = (int)dim_sizes[1];
- RHeight = (int)dim_sizes[0];
-#ifdef UNUSED
- w = dim_sizes[1];
- h = dim_sizes[0];
-
- LeftOfs = TopOfs = 0;
-#endif /* UNUSED */
+ free(pal);
+ }
+
+ H5Fclose(fid);
+
+ RWidth = (int)width;
+ RHeight = (int)height;
/*
@@ -237,48 +224,61 @@ int main(int argc , char **argv)
* palette
* 2. Check for palettes in any of the other images.
*/
- if (!has_local_palette) {
- for (i = 0 ; i < 256 ; i++) {
+ if (!npals)
+ {
+ numcols = 256;
+ for (i = 0 ; i < numcols ; i++)
+ {
Red[i] = 255 - i;
Green[i] = 255 - i;
Blue[i] = 255 - i;
}
- } else {
- for (i = 0 ; i < 256 ; i++){
+ }
+ else
+ {
+ for (i = 0 ; i < numcols ; i++)
+ {
Red[i] = GlobalPalette[i][0];
Green[i] = GlobalPalette[i][1];
Blue[i] = GlobalPalette[i][2];
}
}
- for (i = 0; i < 256; i++) {
+ for (i = 0; i < numcols; i++)
+ {
pc2nc[i] = r1[i] = g1[i] = b1[i] = 0;
}
/* compute number of unique colors */
nc = 0;
- for (i = 0; i < numcols; i++) {
+ for (i = 0; i < numcols; i++)
+ {
/* see if color #i is already used */
- for (j = 0; j < i; j++) {
+ for (j = 0; j < i; j++)
+ {
if (Red[i] == Red[j] && Green[i] == Green[j] && Blue[i] == Blue[j])
break;
}
-
- if (j==i) {
+
+ if (j==i)
+ {
/* wasn't found */
pc2nc[i] = nc;
r1[nc] = Red[i];
g1[nc] = Green[i];
b1[nc] = Blue[i];
nc++;
- } else {
+ }
+ else
+ {
pc2nc[i] = pc2nc[j];
}
}
/* figure out 'BitsPerPixel' */
- for (i = 1; i < 8; i++) {
+ for (i = 1; i < 8; i++)
+ {
if ((1<<i) >= nc)
break;
}
@@ -286,33 +286,30 @@ int main(int argc , char **argv)
BitsPerPixel = i;
ColorMapSize = 1 << BitsPerPixel;
-#ifdef UNUSED
- CountDown = w * h; /* # of pixels we'll be doing */
-#endif /* UNUSED */
-
if (BitsPerPixel <= 1)
InitCodeSize = 2;
else
InitCodeSize = BitsPerPixel;
-#ifdef UNUSED
- curx = cury = 0;
-#endif /* UNUSED */
-
- if (!fpGif) {
+ if (!fpGif)
+ {
fprintf(stderr, "WriteGIF: file not open for writing\n" );
- return (1);
+ goto out;
}
/*
* If it is the first image we do all the header stuff that isn't
* required for the rest of the images.
*/
- if (idx == 0) {
+ if (idx == 0)
+ {
/* Write out the GIF header and logical screen descriptor */
- if (n_images > 1) {
+ if (n_images > 1)
+ {
fwrite("GIF89a", sizeof( char ), 6, fpGif); /* the GIF magic number */
- } else {
+ }
+ else
+ {
fwrite("GIF87a", sizeof( char ), 6, fpGif); /* the GIF magic number */
}
@@ -331,7 +328,8 @@ int main(int argc , char **argv)
* If loop_times is 0 , put in the application extension to make
* the gif anime loop indefinitely
*/
- if (time_out > 0) {
+ if (time_out > 0)
+ {
fputc(0x21 , fpGif);
fputc(0xFF , fpGif);
fputc(11 , fpGif);
@@ -344,7 +342,8 @@ int main(int argc , char **argv)
}
}
- if (n_images > 1) {
+ if (n_images > 1)
+ {
/* write a graphic control block */
fputc(0x21 , fpGif);
fputc(0xF9 , fpGif);
@@ -368,7 +367,8 @@ int main(int argc , char **argv)
/* since we always have a local color palette ... */
fputc((0x80 | (BitsPerPixel - 1)) , fpGif);
- for (i = 0; i < ColorMapSize; i++) {
+ for (i = 0; i < ColorMapSize; i++)
+ {
/* write out Global colormap */
fputc(r1[i], fpGif);
fputc(g1[i], fpGif);
@@ -377,32 +377,42 @@ int main(int argc , char **argv)
fputc(InitCodeSize , fpGif);
- i = hdfWriteGIF(fpGif , Image , 0 , (int)dim_sizes[0] ,
- (int)dim_sizes[1] , r1, g1 , b1 , pc2nc , 256 , 8 ,
- BitsPerPixel);
+ i = hdfWriteGIF(fpGif , Image , 0 , RHeight , RWidth , r1, g1 , b1 , pc2nc , 256 , 8 , BitsPerPixel);
fputc(0x00, fpGif);
free(Image);
}
- if (fputc(';',fpGif) == EOF) {
+ if (fputc(';',fpGif) == EOF)
+ {
/* Write GIF file terminator */
fprintf(stderr , "Error!");
- return -1;
+ goto out;
}
- fclose(fpGif);
+ if (fpGif != NULL)
+ fclose(fpGif);
- if (HDFName != NULL)
- free(HDFName);
- if (GIFName != NULL)
- free(GIFName);
- while(number_of_images--) {
+ while(number_of_images--)
+ {
if (image_name_arr[number_of_images])
free(image_name_arr[number_of_images]);
- if (pal_name_arr[number_of_images])
- free(pal_name_arr[number_of_images]);
}
+
return 0;
+
+
+out:
+
+ while(number_of_images--)
+ {
+ if (image_name_arr[number_of_images])
+ free(image_name_arr[number_of_images]);
+ }
+ if (fpGif != NULL)
+ fclose(fpGif);
+
+
+ return 1;
}
diff --git a/hl/tools/gif2h5/readhdf.c b/hl/tools/gif2h5/readhdf.c
deleted file mode 100644
index a66bf85..0000000
--- a/hl/tools/gif2h5/readhdf.c
+++ /dev/null
@@ -1,255 +0,0 @@
-/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
- * Copyright by The HDF Group. *
- * Copyright by the Board of Trustees of the University of Illinois. *
- * All rights reserved. *
- * *
- * This file is part of HDF5. The full HDF5 copyright notice, including *
- * terms governing use, modification, and redistribution, is contained in *
- * the files COPYING and Copyright.html. COPYING can be found at the root *
- * of the source code distribution tree; Copyright.html can be found at the *
- * root level of an installed copy of the electronic HDF5 document set and *
- * is linked from the top-level documents page. It can also be found at *
- * http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have *
- * access to either file, you may request a copy from help@hdfgroup.org. *
- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
-#include "gif.h"
-#include "h5tools.h"
-
-
-/* just a small cleanup routine before we leave */
-void
-cleanup(BYTE *ptr)
-{
- if (ptr)
- free(ptr);
-}
-
-/* Function: ReadHDF
-** Return: 0 on completion without error, -1 on error
-** Input: CHAR *h5_file - HDF file name
-** CHAR *dset_name - Name of the HDF Image dataset
-** CHAR *pal_name - Name of the HDF palette
-** Output: BYTE** data - the HDF Image to be converted
-** BYTE palette[256][3] - the corresponding palette
-** hsize_t* image_size - the size of each dimension of the image
-**
-** Future Notes:
-** The way readHDF works right now is that it expects the user
-** to know the exact path to the HDF image. Thus it does not
-** parse the HDF file looking for image datasets and corresponding
-** palettes. Also it takes in the default palette for the image
-** specified, if the palette is missing, it makes a default greyscale
-** palette and throws it in.
-**
-** Modifications: Pedro Vicente Nunes, pvn@ncsa.uiuc.edu
-** Date: December 15, 2005
-** Changed the HDF5 read routines to use memory types and sizes,
-** for both the image and pallete datasets
-**
-*/
-int ReadHDF(BYTE** data, BYTE palette[256][3], hsize_t *image_size,
- CHAR *h5_file, CHAR *dset_name, CHAR *pal_name)
-{
- hid_t fHfile; /* H5 file to open */
- hid_t dspace; /* dataspace identifier for the the dataset */
- hid_t dtype; /* datatype identifier for the the dataset */
- hid_t mtype_id; /* memory data type ID */
- size_t msize; /* memory size of memory type */
- hid_t dset; /* dataset identifier */
- hid_t pal_set; /* dataset for palette */
- hid_t pal_space; /* dataspace for palette */
- hid_t pal_dtype; /* datatype for palette */
- hsize_t datasize; /* size of the image */
- int pal_exist=0; /* do we have a palette? */
-
- /* check stuff */
- if (!h5_file || !dset_name || !image_size) {
- fprintf(stderr, "NULL is not an acceptable input for HDFread. Aborting.\n");
- return -1;
- }
-
- /* do we have a palette ? */
- if (pal_name) {
- pal_exist = 1;
- }
-
- /* try opening the file */
- /* H5 file open calls */
- if ((fHfile = H5Fopen(h5_file , H5F_ACC_RDONLY , H5P_DEFAULT)) < 0) {
- fprintf(stderr , "Unable to open HDF file for input. Aborting.\n");
- return -1;
- }
-
- /* open the dataset for reading */
- if ((dset = H5Dopen(fHfile , dset_name)) < 0) {
- fprintf(stderr , "Unable to open dataset\n");
- return -1;
- }
-
- dtype = H5Dget_type(dset);
- if (dtype < 0) {
- fprintf(stderr , "Unable to open datatype\n");
- return -1;
- }
- if (H5Tget_class(dtype) != H5T_INTEGER) {
- fprintf(stderr , "Data is not integer. Cannot convert to GIF\n");
- return -1;
- }
- if (H5Tget_size(dtype) != 1) {
- fprintf(stderr , "Data is %d bytes per pixel. Cannot convert to GIF\n",(int)H5Tget_size(dtype));
- return -1;
- }
-
- /* get the dataspace */
- if ((dspace = H5Dget_space(dset)) < 0) {
- fprintf(stderr , "Unable to get dataspace\n");
- return -1;
- }
-
- /* get the dimension size of the image */
- if (H5Sget_simple_extent_dims(dspace , image_size , NULL) <0 ) {
- fprintf(stderr , "Unable to get dimension info\n");
- return -1;
- }
-
- /* get memory type */
- if ((mtype_id=h5tools_get_native_type(dtype))<0){
- fprintf(stderr , "Unable to get memory type\n");
- return -1;
- }
-
- /* get memory datatype size */
- if ((msize=H5Tget_size(mtype_id))==0){
- fprintf(stderr , "Unable to get memory size\n");
- return -1;
- }
-
- /* size needed to store the image */
- datasize = image_size[0] * image_size[1];
-
- /* allocate memory to store the image */
- if ((*data = (BYTE*) malloc((size_t)datasize*msize)) == NULL) {
- fprintf(stderr , "Out of memory, exiting");
- return -1;
- }
-
- /* get the actual image */
- if (H5Dread(dset , mtype_id, H5S_ALL , H5S_ALL , H5P_DEFAULT , *data) < 0) {
- fprintf(stderr , "Unable to read data \n");
- cleanup(*data);
- return -1;
- }
-
- if (pal_exist) {
- hsize_t loc_pal_size[2];
- hsize_t pal_datasize;
- hid_t pal_mtype_id;
- void *temp_buf;
-
- /* get the palette dataset */
- if ((pal_set = H5Dopen(fHfile , pal_name)) < 0) {
- fprintf(stderr , "Unable to open dataset\n");
- pal_exist = 0;
- return -1;
- }
-
- pal_dtype = H5Dget_type(pal_set);
- if (dtype < 0) {
- fprintf(stderr , "Unable to open palette datatype\n");
- return -1;
- }
- if (H5Tget_class(pal_dtype) != H5T_INTEGER) {
- fprintf(stderr , "Palette data is not integer. Cannot convert to GIF\n");
- return -1;
- }
- if (H5Tget_size(pal_dtype) != 1) {
- fprintf(stderr , "Palette data is %d bytes per pixel. Cannot convert to GIF\n",(int)H5Tget_size(pal_dtype));
- return -1;
- }
-
- /* get the dataspace */
- if ((pal_space = H5Dget_space(pal_set)) < 0) {
- fprintf(stderr , "Unable to get dataspace\n");
- pal_exist = 0;
- return -1;
- }
-
- /* get the dimension size of the palette. */
- if (H5Sget_simple_extent_dims(pal_space , loc_pal_size , NULL) !=2 ) {
- fprintf(stderr , "Unable to get dimension info\n");
- pal_exist = 0;
- return -1;
- }
-
- /* get memory type */
- if ((pal_mtype_id=h5tools_get_native_type(pal_dtype))<0){
- fprintf(stderr , "Unable to get memory type\n");
- return -1;
- }
-
- /* get memory datatype size */
- if ((msize=H5Tget_size(pal_mtype_id))==0){
- fprintf(stderr , "Unable to get memory size\n");
- return -1;
- }
-
- /* size needed to store the image */
- pal_datasize = loc_pal_size[0] * loc_pal_size[1];
-
- /* copy stuff into a temp buffer and then copy 256*3 elements to palette */
- temp_buf=(void *) malloc((unsigned)(pal_datasize*msize));
- if ( temp_buf==NULL){
- printf( "cannot read into memory\n" );
- return -1;
- }
- /*
- * make sure that the palette is actually 256 X 3 so that we don't
- * create overflows
- */
- if (pal_datasize > 256 * 3) {
- fprintf(stderr , "Palette seems to be more than 256X3 bytes\n");
- fprintf(stderr , "Truncating palette to 256 colors. This might cause a problem with the final image\n");
- pal_datasize = 256 * 3;
- }
-
- /* get the actual palette */
- if (H5Dread(pal_set , pal_mtype_id, H5S_ALL , H5S_ALL , H5P_DEFAULT , temp_buf) < 0) {
- fprintf(stderr , "Unable to read data \n");
- cleanup(*data);
- cleanup(temp_buf);
- return -1;
- }
-
- /* copy stuff into the actual palette */
- memcpy(palette , temp_buf , (size_t)pal_datasize);
-
- /* get rid of the temp memory */
- cleanup(temp_buf);
-
- /* close pal ids */
- H5Dclose(pal_set);
- H5Sclose(pal_space);
- H5Tclose(pal_dtype);
- H5Tclose(pal_mtype_id);
- /* end of if (pal_exist) */
- } else {
- int i;
- /*
- * if palette does not exist we just go ahead and create a uniform
- * greyscale palette
- */
- for (i = 0 ; i < 256 ; i++) {
- palette[i][0] = 255 - i;
- palette[i][1] = 255 - i;
- palette[i][2] = 255 - i;
- }
- }
-
- /* close everything */
- H5Dclose(dset);
- H5Sclose(dspace);
- H5Tclose(dtype);
- H5Tclose(mtype_id);
- H5Fclose(fHfile);
- return 0;
-}
diff --git a/hl/tools/testfiles/h52giftst.h5 b/hl/tools/testfiles/h52giftst.h5
index 6dc499b..c88cefc 100644
--- a/hl/tools/testfiles/h52giftst.h5
+++ b/hl/tools/testfiles/h52giftst.h5
Binary files differ