From 6218bc7efa1e7b8b9291f79e468aff9aa81b9398 Mon Sep 17 00:00:00 2001 From: MuQun Yang Date: Fri, 17 Aug 2001 15:29:07 -0500 Subject: [svn-r4369] Purpose: add a real raster-24 bit testing for interlace mode. Description: 1. GR interfaces will never create an HDF4 file with interlace mode other than pixel interleaved. DF24 interfaces can create HDF4 file with different interleaved. There are inconsistent behaviors between GRreqimageil and GRreadimage, data read into the memory will not behave properly if a new interlace mode is asked. 2. Currently HDF5 image spec. supports pixel interleaved and plane interleaved. We make a real image file to test whether the converter is doing the right thing. Solution: We use DF24 bit APIs to generate a real image file that can be tested by H5view. Platforms tested: linux and sol2.7 --- tools/h4toh5/h4toh5test.c | 158 ++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 151 insertions(+), 7 deletions(-) diff --git a/tools/h4toh5/h4toh5test.c b/tools/h4toh5/h4toh5test.c index 4a985d6..043f417 100644 --- a/tools/h4toh5/h4toh5test.c +++ b/tools/h4toh5/h4toh5test.c @@ -798,7 +798,7 @@ int test_grtyp() { uint32 image_data321[Y_LENGTH][X_LENGTH]; int16 image_data16[Y_LENGTH][X_LENGTH][3]; int16 image_data161[Y_LENGTH][X_LENGTH]; - int i, j; + intn i, j; int32 CUB_SIZE; int istat; @@ -970,7 +970,7 @@ int test_ras8() { int32 start[2], edges[2],dims[2]; int8 image_data8[Y_LENGTH][X_LENGTH]; uint8 image_datau8[Y_LENGTH][X_LENGTH]; - int i, j; + intn i, j; int32 CUB_SIZE; CUB_SIZE = (X_LENGTH-1)*(Y_LENGTH-1); @@ -1071,7 +1071,9 @@ int test_ras24() { int32 start[2], edges[2],dims[2]; int8 image_data24[Y_LENGTH][X_LENGTH][3]; uint8 image_datau24[Y_LENGTH][X_LENGTH][3]; - int i, j; + unsigned char t24[13][15][3],tl24[13][3][15],tp24[3][13][15]; + int32 dimst24[2]; + intn i, j,k,m,n,p,q,co; int32 CUB_SIZE; @@ -1095,6 +1097,69 @@ int test_ras24() { } } + k =0; + m = 0; + n = 0; + for (j = 0; j < 13; j++) { + for (i = 0; i < 15; i++) { + t24[j][i][0] = k; + t24[j][i][1] = k; + t24[j][i][2] = k; + k = k+1; + n = n+1; + if(n%13==0) { + k=m+1; + m++; + } + } + } + + k = 0; + m = 0; + n = 0; + p = 0; + for (j = 0; j < 13; j++) { + for (co =0;co<3;co++) { + for (i = 0; i < 15; i++) { + tl24[j][co][i] = k; + k = k+1; + p = p+1; + if(p%13==0) { + m=m+1; + if(m%3==0) n++; + k = n; + } + } + } + } + + k = 0; + m = 0; + n = 0; + p = 0; + q = 0; + for (co = 0; co < 3; co++) { + for (j =0;j<13;j++) { + for (i = 0; i < 15; i++) { + tp24[co][j][i] = k; + k++; + m++; + q++; + p++; + if(p%13 ==0) { + n++; + k = n; + } + if(q%(13*15)==0) { + k = 0; + n = 0; + } + } + } + } + dimst24[0] = 13; + dimst24[1] = 15; + /* Open the file. */ file_id = Hopen(FILERAS24, DFACC_CREATE, 0); @@ -1157,6 +1222,85 @@ int test_ras24() { printf("fail to write GR image.\n"); return FAIL; } + /* Terminate access to the image. */ + GRendaccess(ri_id); + + +/* pixel interlaced.*/ +ncomp = 3; +il = MFGR_INTERLACE_PIXEL; +for(i=0;i<2;i++) +{ + + start[i] =0; + edges[i] = dimst24[i]; +} + ri_id = GRcreate(gr_id, "t24", ncomp, DFNT_UCHAR8, il, dimst24); + if(ri_id == FAIL) { + printf("fail to create GR object.\n"); + return FAIL; + } + istat = GRwriteimage(ri_id, start, NULL, edges, (VOIDP)t24); + if(istat == FAIL) { + printf("fail to write GR image.\n"); + return FAIL; + } + + GRendaccess(ri_id); + + /* we will use DF24 APIs to test interlace function of image. */ + DF24setil(MFGR_INTERLACE_PIXEL); + DF24addimage("ras24il.hdf",(VOIDP)t24,13,15); + DF24setil(MFGR_INTERLACE_COMPONENT); + DF24addimage("ras24il.hdf",(VOIDP)tp24,13,15); + +/* component interlaced.*/ + ncomp = 3; + il = MFGR_INTERLACE_COMPONENT; + +for(i=0;i<2;i++) +{ + + start[i] =0; + edges[i] = dimst24[i]; +} + /* Create the array. */ + ri_id = GRcreate(gr_id, "tp24", ncomp, DFNT_UCHAR8, il, dimst24); + if(ri_id == FAIL) { + printf("fail to create GR object.\n"); + return FAIL; + } + /* Write the stored data to the image array. */ + istat = GRwriteimage(ri_id, start, NULL, edges, (VOIDP)tp24); + if(istat == FAIL) { + printf("fail to write GR image.\n"); + return FAIL; + } + + /* Terminate access to the image. */ + GRendaccess(ri_id); + +/* line interlaced. */ + ncomp = 3; + il = MFGR_INTERLACE_LINE; +for(i=0;i<2;i++) +{ + + start[i] =0; + edges[i] = dimst24[i]; +} + /* Create the array. */ + ri_id = GRcreate(gr_id, "tl24", ncomp, DFNT_UCHAR8, il, dimst24); + if(ri_id == FAIL) { + printf("fail to create GR object.\n"); + return FAIL; + } + /* Write the stored data to the image array. */ + istat = GRwriteimage(ri_id, start, NULL, edges, (VOIDP)tl24); + if(istat == FAIL) { + printf("fail to write GR image.\n"); + return FAIL; + } /* Terminate access to the image. */ GRendaccess(ri_id); @@ -1178,7 +1322,7 @@ int test_imageattr() { uint8 palette_data[NUM_COLORS * 3]; int32 num_comp,num_entries; - int i, j; + intn i, j; /* Open the file. */ file_id = Hopen(FILEGRPAL, DFACC_CREATE, 0); @@ -1442,7 +1586,7 @@ int test_vgnameclash() { int32 file_id, vgroupa_ref, vgroupa_id,vgroupb_ref,vgroupb_id; int32 vgroupc_id,vgroupc_ref; int32 dim_sizes[TYP_RANK]; - int i, j; + intn i, j; int32 sd_id,sds_id; int32 sds_ref; int32 array_data[X_LENGTH][Y_LENGTH]; @@ -1566,7 +1710,7 @@ int test_sdsnameclash() { int32 file_id, vgroupa_ref, vgroupa_id,vgroupb_ref,vgroupb_id; int32 dim_sizes[TYP_RANK]; int32 vgroupc_ref,vgroupc_id; - int i, j,istat; + intn i, j,istat; int32 sd_id,sds_id; int32 sds_ref; int32 array_data[X_LENGTH][Y_LENGTH]; @@ -2904,7 +3048,7 @@ int test_vgall() { int32 vgroupd_ref, vgroupd_id,vgroupe_ref,vgroupe_id; int32 vdata_id,values[4]={32, 16, 32, 8}; - int i, j,k; + intn i, j,k; uint8 *databuf, *pntr; int bufsize, recsize; -- cgit v0.12