bug fix Description: the Makefile.in of the hl tests was not including a "srcdir" include path the test table .c file was missing also the srcdir path Solution: add it Platforms tested: Misc. update:
198 lines
5.4 KiB
C
198 lines
5.4 KiB
C
|
|
/****************************************************************************
|
|
* NCSA HDF *
|
|
* Scientific Data Technologies *
|
|
* National Center for Supercomputing Applications *
|
|
* University of Illinois at Urbana-Champaign *
|
|
* 605 E. Springfield, Champaign IL 61820 *
|
|
* *
|
|
* For conditions of distribution and use, see the accompanying *
|
|
* hdf/COPYING f. *
|
|
* *
|
|
****************************************************************************/
|
|
|
|
|
|
|
|
#include "H5IM.h"
|
|
|
|
#define FILE_NAME "test_image.h5"
|
|
#define WIDTH (hsize_t)500
|
|
#define HEIGHT (hsize_t)200
|
|
unsigned char image_in1 [ WIDTH*HEIGHT ];
|
|
unsigned char image_out1[ WIDTH*HEIGHT ];
|
|
unsigned char image_in2 [ WIDTH*HEIGHT*3 ];
|
|
unsigned char image_out2[ WIDTH*HEIGHT*3 ];
|
|
|
|
|
|
/*-------------------------------------------------------------------------
|
|
* the main program
|
|
*-------------------------------------------------------------------------
|
|
*/
|
|
int main( void )
|
|
{
|
|
hid_t file_id;
|
|
herr_t status;
|
|
hsize_t width, height, planes;
|
|
hsize_t pal_dims[] = {9,3};
|
|
hsize_t pal_dims_out[2];
|
|
hsize_t i;
|
|
char interlace[20];
|
|
hssize_t npals;
|
|
herr_t is_image;
|
|
herr_t is_palette;
|
|
|
|
unsigned char pal_data_out[9*3];
|
|
/* create a 9 entry grey palette */
|
|
unsigned char pal_data_in[9*3] = {0,0,0,
|
|
25,25,25,
|
|
50,50,50,
|
|
75,75,75,
|
|
100,100,100,
|
|
125,125,125,
|
|
150,150,150,
|
|
175,175,175,
|
|
200,200,200};
|
|
|
|
for (i = 0; i < WIDTH*HEIGHT; i++ )
|
|
image_in1[i] = (unsigned char)i;
|
|
for (i = 0; i < WIDTH*HEIGHT*3; i++)
|
|
image_in2[i] = (unsigned char)i;
|
|
|
|
/* Create a new HDF5 file using default properties. */
|
|
file_id = H5Fcreate(FILE_NAME, H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT );
|
|
|
|
/*-------------------------------------------------------------------------
|
|
* Indexed image test
|
|
*-------------------------------------------------------------------------
|
|
*/
|
|
|
|
TESTING("indexed image");
|
|
|
|
/* Write image */
|
|
if ( H5IMmake_image_8bit( file_id, "Image1", WIDTH, HEIGHT, image_in1 ) < 0 )
|
|
goto out;
|
|
|
|
/* Make a palette */
|
|
if ( H5IMmake_palette( file_id, "Pallete", pal_dims, pal_data_in ) < 0 )
|
|
goto out;
|
|
|
|
/* Attach a palette to the image dataset */
|
|
if ( H5IMlink_palette( file_id, "Image1", "Pallete" ) < 0 )
|
|
goto out;
|
|
|
|
/* Read image */
|
|
if ( H5IMget_image_info( file_id, "Image1", &width, &height, &planes, interlace, &npals ) < 0 )
|
|
goto out;
|
|
|
|
if ( H5IMread_image( file_id, "Image1", image_out1 ) < 0 )
|
|
goto out;
|
|
|
|
for (i = 0; i < height*width*planes; i++) {
|
|
if ( image_in1[i] != image_out1[i] ) {
|
|
goto out;
|
|
|
|
}
|
|
}
|
|
|
|
PASSED();
|
|
|
|
/*-------------------------------------------------------------------------
|
|
* True color image test
|
|
*-------------------------------------------------------------------------
|
|
*/
|
|
|
|
TESTING("true color image");
|
|
|
|
/* Write image */
|
|
if ( H5IMmake_image_24bit( file_id, "Image2", WIDTH, HEIGHT, "INTERLACE_PIXEL", image_in2 ) )
|
|
goto out;
|
|
|
|
/* Read image */
|
|
if ( H5IMget_image_info( file_id, "Image2", &width, &height, &planes, interlace, &npals ) < 0 )
|
|
goto out;
|
|
|
|
if ( H5IMread_image( file_id, "Image2", image_out2 ) < 0 )
|
|
goto out;
|
|
|
|
for (i = 0; i < height*width*planes; i++) {
|
|
if ( image_in2[i] != image_out2[i] ) {
|
|
goto out;
|
|
}
|
|
}
|
|
|
|
PASSED();
|
|
|
|
/*-------------------------------------------------------------------------
|
|
* H5IMget_npalettes test
|
|
*-------------------------------------------------------------------------
|
|
*/
|
|
|
|
TESTING("pallete functions");
|
|
|
|
if ( H5IMget_npalettes( file_id, "Image1", &npals ) < 0 )
|
|
goto out;
|
|
|
|
/*-------------------------------------------------------------------------
|
|
* H5IMget_palette_info test
|
|
*-------------------------------------------------------------------------
|
|
*/
|
|
|
|
if ( H5IMget_palette_info( file_id, "Image1", 0, pal_dims_out ) < 0 )
|
|
goto out;
|
|
|
|
for (i = 0; i < 2; i++) {
|
|
if ( pal_dims[i] != pal_dims_out[i] ) {
|
|
goto out;
|
|
}
|
|
}
|
|
|
|
/*-------------------------------------------------------------------------
|
|
* H5IMget_palette test
|
|
*-------------------------------------------------------------------------
|
|
*/
|
|
|
|
if ( H5IMget_palette( file_id, "Image1", 0, pal_data_out ) < 0 )
|
|
goto out;
|
|
|
|
for (i = 0; i < 9*3; i++) {
|
|
if ( pal_data_in[i] != pal_data_out[i] ) {
|
|
goto out;
|
|
}
|
|
}
|
|
|
|
/*-------------------------------------------------------------------------
|
|
* H5IMis_image test
|
|
*-------------------------------------------------------------------------
|
|
*/
|
|
|
|
if ( (is_image = H5IMis_image( file_id, "Image1" )) < 0 )
|
|
goto out;
|
|
|
|
if ( (is_image = H5IMis_image( file_id, "Image2" )) < 0 )
|
|
goto out;
|
|
|
|
/*-------------------------------------------------------------------------
|
|
* H5IMis_palette test
|
|
*-------------------------------------------------------------------------
|
|
*/
|
|
|
|
if ( (is_palette = H5IMis_palette( file_id, "Pallete" )) < 0 )
|
|
goto out;
|
|
|
|
/*-------------------------------------------------------------------------
|
|
* end tests
|
|
*-------------------------------------------------------------------------
|
|
*/
|
|
|
|
/* Close the file. */
|
|
status = H5Fclose( file_id );
|
|
|
|
PASSED();
|
|
return 0;
|
|
|
|
out:
|
|
H5_FAILED();
|
|
return 1;
|
|
|
|
}
|