roentgen b75cab
/*
roentgen b75cab
 * maketif.c -- creates a little TIFF file, with
roentgen b75cab
 *   the XTIFF extended tiff example tags.
roentgen b75cab
 */
roentgen b75cab
roentgen b75cab
#include <stdlib.h></stdlib.h>
roentgen b75cab
#include "xtiffio.h"
roentgen b75cab
roentgen b75cab
roentgen b75cab
void SetUpTIFFDirectory(TIFF *tif);
roentgen b75cab
void WriteImage(TIFF *tif);
roentgen b75cab
roentgen b75cab
#define WIDTH 20
roentgen b75cab
#define HEIGHT 20
roentgen b75cab
roentgen b75cab
void main()
roentgen b75cab
{
roentgen b75cab
	TIFF *tif=(TIFF*)0;  /* TIFF-level descriptor */
roentgen b75cab
	
roentgen b75cab
	tif=XTIFFOpen("newtif.tif","w");
roentgen b75cab
	if (!tif) goto failure;
roentgen b75cab
	
roentgen b75cab
	SetUpTIFFDirectory(tif);
roentgen b75cab
	WriteImage(tif);
roentgen b75cab
	
roentgen b75cab
	XTIFFClose(tif);
roentgen b75cab
	exit (0);
roentgen b75cab
	
roentgen b75cab
failure:
roentgen b75cab
	printf("failure in maketif\n");
roentgen b75cab
	if (tif) XTIFFClose(tif);
roentgen b75cab
	exit (-1);
roentgen b75cab
}
roentgen b75cab
roentgen b75cab
roentgen b75cab
void SetUpTIFFDirectory(TIFF *tif)
roentgen b75cab
{
roentgen b75cab
	double mymulti[6]={0.0,1.0,2.0,  3.1415926, 5.0,1.0};
roentgen b75cab
	uint32 mysingle=3456;
roentgen b75cab
	char *ascii="This file was produced by Steven Spielberg. NOT";
roentgen b75cab
roentgen b75cab
	TIFFSetField(tif,TIFFTAG_IMAGEWIDTH,WIDTH);
roentgen b75cab
	TIFFSetField(tif,TIFFTAG_IMAGELENGTH,HEIGHT);
roentgen b75cab
	TIFFSetField(tif,TIFFTAG_COMPRESSION,COMPRESSION_NONE);
roentgen b75cab
	TIFFSetField(tif,TIFFTAG_PHOTOMETRIC,PHOTOMETRIC_MINISBLACK);
roentgen b75cab
	TIFFSetField(tif,TIFFTAG_PLANARCONFIG,PLANARCONFIG_CONTIG);
roentgen b75cab
	TIFFSetField(tif,TIFFTAG_BITSPERSAMPLE,8);
roentgen b75cab
	TIFFSetField(tif,TIFFTAG_ROWSPERSTRIP,20);
roentgen b75cab
roentgen b75cab
	/* Install the extended TIFF tag examples */
roentgen b75cab
	TIFFSetField(tif,TIFFTAG_EXAMPLE_MULTI,6,mymulti);
roentgen b75cab
	TIFFSetField(tif,TIFFTAG_EXAMPLE_SINGLE,mysingle);
roentgen b75cab
	TIFFSetField(tif,TIFFTAG_EXAMPLE_ASCII,ascii);
roentgen b75cab
}
roentgen b75cab
roentgen b75cab
roentgen b75cab
void WriteImage(TIFF *tif)
roentgen b75cab
{
roentgen b75cab
	int i;
roentgen b75cab
	char buffer[WIDTH];
roentgen b75cab
	
roentgen b75cab
	memset(buffer,0,sizeof(buffer));
roentgen b75cab
	for (i=0;i
roentgen b75cab
		if (!TIFFWriteScanline(tif, buffer, i, 0))
roentgen b75cab
			TIFFErrorExt(tif->tif_clientdata, "WriteImage","failure in WriteScanline\n");
roentgen b75cab
}
roentgen b75cab
roentgen b75cab
roentgen b75cab
roentgen b75cab
roentgen b75cab
/*
roentgen b75cab
 * Local Variables:
roentgen b75cab
 * mode: c
roentgen b75cab
 * c-basic-offset: 8
roentgen b75cab
 * fill-column: 78
roentgen b75cab
 * End:
roentgen b75cab
 */