# 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