The HDF Group

HDF User’s Guide

Version 4.2r4


[Top] [Prev][Next]


r8_ex1.c
#include "hdf.h" 
#define WIDTH 5 
#define HEIGHT 6 
main( ) 
{ 
	/* Initialize the image array */ 
	static uint8 raster_data[HEIGHT][WIDTH] =  
		{ 1, 2, 3, 4, 5, 
		6, 7,	8, 9, 10, 
		11, 12, 13,	14, 15, 
		16, 17, 18, 19, 20,	 
		21, 22, 23,	24, 25, 
		26, 27, 28,	29, 30 }; 
	intn status; 
  
	/* Write the 8-bit raster image to file */ 
	status = DFR8addimage("Example1.hdf", raster_data,  
					WIDTH, HEIGHT, 0); 
} 
r8_ex1.f
      PROGRAM RASTER8       
      character*1 raster_data(5,6) 
      integer retn, d8aimg 
      integer*4 WIDTH, HEIGHT 
      parameter(WIDTH = 5, HEIGHT = 6) 
C     Initialize the image array 
      data raster_data /  1,  2,  3,  4,  5, 
     $                    6,  7,  8,  9, 10, 
     $                   11, 12, 13, 14, 15, 
     $                   16, 17, 18, 19, 20, 
     $                   21, 22, 23, 24, 25, 
     $                   26, 27, 28, 29, 30 / 
C     Write the 8-bit raster image to the file 
      retn = d8aimg(`Example1.hdf', raster_data, WIDTH, HEIGHT, 0) 
      end 
r8_ex2.c
#include "hdf.h" 
#define WIDTH 20 
#define HEIGHT 20 
main( ) 
{ 
	uint8 colors[256*3], picture[HEIGHT][WIDTH]; 
	uint8 i, j; 
	int16 status; 
	/* Initialize image arrays. */ 
	for (j = 0; j < WIDTH; j++) { 
		for (i = 0; i < HEIGHT; i++)  
			picture[j][i] = 1; 
      } 
	/* Set the current palette. */ 
	status = DFR8setpalette(colors); 
	/* Write the image data to the file. */ 
	status = DFR8putimage("Example2.hdf", picture, WIDTH, 
					HEIGHT, COMP_NONE); 
} 
r8_ex2.f
      PROGRAM WRITE UNCOMPRESSED RIS8 
      integer   d8spal, d8pimg, status, i, j 
      integer   colors(768) 
      integer*4   WIDTH, HEIGHT, COMP_NONE 
      parameter (COMP_NONE = 0, 
     +           WIDTH = 20, 
     +           HEIGHT = 20) 
      integer   picture(WIDTH, HEIGHT) 
C     Initialize the image data. 
      do 20 j = 1, WIDTH 
       do 10 i = 1, HEIGHT 
          picture(j, i) = 1 
10     continue 
20    continue 
C     Set the current palette. 
      status = d8spal(colors) 
C     Write the image data to the file. 
      status = d8pimg(`Example2.hdf', picture, WIDTH, HEIGHT, 
     +                COMP_NONE) 
      end 
r8_ex3.c
 #include "hdf.h" 
#define WIDTH 20 
#define HEIGHT 20 
main ( ) 
{ 
	uint8 paletteA[256*3], paletteB[256*3]; 
	uint8 picture1[HEIGHT][WIDTH], picture2[HEIGHT][WIDTH]; 
	uint8 picture3[HEIGHT][WIDTH], picture4[HEIGHT][WIDTH]; 
	uint8 i, j; 
	int16 status; 
     
	/* Initialize image arrays. */ 
	for (j = 0; j < WIDTH; j++) { 
		for (i = 0; i < HEIGHT; i++) { 
			picture1[j][i] = 1; 
			picture2[j][i] = 1; 
			picture3[j][i] = 1; 
			picture4[j][i] = 1; 
		} 
	} 
	/* Set the first palette. */ 
	status = DFR8setpalette(paletteA); 
     
	/* Write the compressed image data to the HDF file. */ 
	status = DFR8putimage("Example3.hdf", (VOIDP)picture1, WIDTH, HEIGHT, \ 
					COMP_RLE); 
	status = DFR8addimage("Example3.hdf", (VOIDP)picture2, WIDTH, HEIGHT, \ 
					COMP_RLE); 
     
	/* Set the second palette. */ 
	status = DFR8setpalette(paletteB); 
     
	/* Write the uncompressed image data to the HDF file. */ 
	status = DFR8addimage("Example3.hdf", (VOIDP)picture3, WIDTH, HEIGHT, \ 
					COMP_NONE); 
	status = DFR8addimage("Example3.hdf", (VOIDP)picture4, WIDTH, HEIGHT, \ 
					COMP_NONE); 
} 
r8_ex3.f
      PROGRAM WRITE IMAGE SETS 
      integer d8spal, d8pimg, d8aimg, status 
      integer*4 COMP_RLE, COMP_NONE, WIDTH, HEIGHT 
      parameter (COMP_RLE = 11, 
     +           COMP_NONE = 0, 
     +           WIDTH = 20, 
     +           HEIGHT = 20) 
      integer paletteA(768), paletteB(768) 
      integer picture1(WIDTH, HEIGHT), picture2(WIDTH, HEIGHT) 
      integer picture3(WIDTH, HEIGHT), picture4(WIDTH, HEIGHT) 
C     Initialize the image data. 
      do 20 j = 1, WIDTH 
       do 10 i = 1, HEIGHT 
        picture1(j, i) = 1 
        picture2(j, i) = 1 
        picture3(j, i) = 1 
        picture4(j, i) = 1 
10     continue 
20    continue 
C     Set the first palette. 
      status = d8spal(paletteA) 
C     Write the compressed image data to the HDF file. 
      status = d8pimg(`Example3.hdf', picture1, WIDTH, HEIGHT,  
     +               COMP_RLE) 
      status = d8aimg(`Example3.hdf', picture2, WIDTH, HEIGHT,  
     +               COMP_RLE) 
C     Set the second palette. 
      status = d8spal(paletteB) 
C     Write the uncompressed image data to the HDF file. 
      status = d8aimg(`Example3.hdf', picture3, WIDTH, HEIGHT,  
     +               COMP_NONE) 
      status = d8aimg(`Example3.hdf', picture4, WIDTH, HEIGHT,  
     +               COMP_NONE) 
      end 
r8_ex4.c
#include "hdf.h" 
#include "hcomp.h" 
#define WIDTH 3 
#define HEIGHT 5 
#define PIXEL_DEPTH 3 
main( ) 
{ 
	/* Initialize the image array. */ 
	static uint8 raster_data[HEIGHT][WIDTH][PIXEL_DEPTH] =  
		{  1, 2, 3,  4, 5, 6,  7, 8, 9,   
		  10,11,12, 13,14,15, 16,17,18,  
		  19,20,21, 22,23,24, 25,26,27,   
		  28,29,30, 31,32,33, 34,35,36,   
		  37,38,39, 40,41,42, 43,44,45 };  
	static comp_info compress_info; 
	intn status; 
	/* Initialize JPEG compression structure. */ 
	compress_info.jpeg.quality = 60; 
	compress_info.jpeg.force_baseline = 1; 
	/* Set JPEG compression for storing the image. */ 
	status = DFR8setcompress(COMP_JPEG, &compress_info); 
	/* Write the 8-bit image data to file. */ 
	status = DFR8addimage("Example2.hdf", (VOIDP)raster_data, WIDTH,  
                          HEIGHT, COMP_JPEG); 
} 
r8_ex4.f
      PROGRAM COMPRESS RIS8 
      integer d8aimg, d8scomp, d8sjpeg, status 
      integer*4 WIDTH, HEIGHT, PIXEL_DEPTH, COMP_JPEG 
C     COMP_JPEG is defined in hcomp.h. 
      parameter(WIDTH = 3, 
     +          HEIGHT = 5, 
     +          COMP_JPEG = 1, 
     +          PIXEL_DEPTH = 3) 
      character raster_data(PIXEL_DEPTH, WIDTH, HEIGHT)  
C     Initialize the image array. 
      data raster_data  
     + /  1, 2, 3,  4, 5, 6,  7, 8, 9,   
     +    10,11,12, 13,14,15, 16,17,18,  
     +    19,20,21, 22,23,24, 25,26,27,   
     +    28,29,30, 31,32,33, 34,35,36,   
     +    37,38,39, 40,41,42, 43,44,45  / 
C     Set compression. 
      status = d8scomp(COMP_JPEG) 
C     Set JPEG parameters to quality = 60, and turn compatibility on. 
      status = d8sjpeg(60, 1) 
C     Write the 8-bit image data to the HDF file. 
      status = d8aimg(`Example2.hdf', raster_data, WIDTH, HEIGHT, 
     +              COMP_JPEG) 
      end 
r8_ex5.c
#include "hdf.h" 
#define WIDTH 5 
#define HEIGHT 6 
main( ) 
{ 
	uint8 raster_data[HEIGHT][WIDTH]; 
	int32 width, height; 
	intn haspal, status; 
     
	/* Get the dimensions of the image */ 
	status = DFR8getdims("Example1.hdf", &width, &height, &haspal); 
     
	/* Read the raster data if the dimensions are correct */ 
	if (width <= WIDTH && height <= HEIGHT) 
		status = DFR8getimage("Example1.hdf", (VOIDP)raster_data, width,  
						height, NULL); 
     
} 
r8_ex5.f
      PROGRAM RASTER8       
      character*1 image(5, 6) 
      integer status, height, width, d8gimg, d8gdims, haspal 
      integer*4 width, height 
C     Get the dimensions of the image. 
      status = d8gdims(`Example1.hdf', width, height, haspal) 
C     Read the raster data if the dimensions are correct. 
      if (width .le. 5 .and. height .le. 6) then 
         status = d8gimg(`Example1.hdf', image, width, height, 0) 
      endif 
      end 
      PROGRAM GET LABEL LIST             
      integer dallist 
      integer*4 DFTAG_NDG, LISTSIZE, DFS_MAXLEN 
      parameter (DFTAG_NDG = 720, 
     +          LISTSIZE = 20, 
     +          DFS_MAXLEN = 255) 
      character*60 label_list(DFS_MAXLEN*LISTSIZE) 
      integer i, num_of_labels, start_position, ref_list(DFS_MAXLEN) 
      start_position = 1 
      num_of_labels = dallist(`Example1.hdf', DFTAG_NDG, ref_list, 
     +                        label_list, 10, DFS_MAXLEN,  
     +                        start_position) 
      do 10 i = 1, num_of_labels 
        print *,'    Ref number:  `,ref_list(i), 
     +          `    Label: `,label_list(i) 
10    continue 
      end 

HDF4.2r4 - February 2009
Copyright
The HDF Group
www.hdfgroup.org
The HDF Group