- Messages
- 284
- Country
Any other question that is not specific to an aspect of development or tool can be posted in the General chat forum.
By following these guidelines we make sure that the forums remain easy to read for everybody and also that the right people can find your post to answer it.
/*
* makegeo.c -- example client code for LIBGEO geographic
* TIFF tag support.
*
* Author: Niles D. Ritter
*
* Revision History:
* 31 October, 1995 Fixed reversed lat-long coordinates NDR
*
*/
#include "geotiffio.h"
#include "xtiffio.h"
#include <stdlib.h>
#include <string.h>
void SetUpTIFFDirectory(TIFF *tif);
void SetUpGeoKeys(GTIF *gtif);
void WriteImage(TIFF *tif);
#define WIDTH 20L
#define HEIGHT 20L
int main()
{
char *fname = "newgeo.tif";
TIFF *tif; /* TIFF-level descriptor */
GTIF *gtif; /* GeoKey-level descriptor */
tif=XTIFFOpen(fname,"w");
if (!tif) goto failure;
gtif = GTIFNew(tif);
if (!gtif)
{
printf("failed in GTIFNew\n");
goto failure;
}
SetUpTIFFDirectory(tif);
SetUpGeoKeys(gtif);
WriteImage(tif);
GTIFWriteKeys(gtif);
GTIFFree(gtif);
XTIFFClose(tif);
return 0;
failure:
printf("failure in makegeo\n");
if (tif) TIFFClose(tif);
if (gtif) GTIFFree(gtif);
return -1;
}
void SetUpTIFFDirectory(TIFF *tif)
{
double tiepoints[6]={0,0,0,130.0,32.0,0.0};
double pixscale[3]={1,1,0};
TIFFSetField(tif,TIFFTAG_IMAGEWIDTH, WIDTH);
TIFFSetField(tif,TIFFTAG_IMAGELENGTH, HEIGHT);
TIFFSetField(tif,TIFFTAG_COMPRESSION, COMPRESSION_NONE);
TIFFSetField(tif,TIFFTAG_PHOTOMETRIC, PHOTOMETRIC_MINISBLACK);
TIFFSetField(tif,TIFFTAG_PLANARCONFIG, PLANARCONFIG_CONTIG);
TIFFSetField(tif,TIFFTAG_BITSPERSAMPLE, 8);
TIFFSetField(tif,TIFFTAG_ROWSPERSTRIP, 20L);
TIFFSetField(tif,TIFFTAG_GEOTIEPOINTS, 6,tiepoints);
TIFFSetField(tif,TIFFTAG_GEOPIXELSCALE, 3,pixscale);
}
void SetUpGeoKeys(GTIF *gtif)
{
GTIFKeySet(gtif, GTModelTypeGeoKey, TYPE_SHORT, 1, ModelGeographic);
GTIFKeySet(gtif, GTRasterTypeGeoKey, TYPE_SHORT, 1, RasterPixelIsArea);
GTIFKeySet(gtif, GTCitationGeoKey, TYPE_ASCII, 0, "Just An Example");
GTIFKeySet(gtif, GeographicTypeGeoKey, TYPE_SHORT, 1, KvUserDefined);
GTIFKeySet(gtif, GeogCitationGeoKey, TYPE_ASCII, 0, "Everest Ellipsoid Used.");
GTIFKeySet(gtif, GeogAngularUnitsGeoKey, TYPE_SHORT, 1, Angular_Degree);
GTIFKeySet(gtif, GeogLinearUnitsGeoKey, TYPE_SHORT, 1, Linear_Meter);
GTIFKeySet(gtif, GeogGeodeticDatumGeoKey, TYPE_SHORT, 1, KvUserDefined);
GTIFKeySet(gtif, GeogEllipsoidGeoKey, TYPE_SHORT, 1, Ellipse_Everest_1830_1967_Definition);
GTIFKeySet(gtif, GeogSemiMajorAxisGeoKey, TYPE_DOUBLE, 1, (double)6377298.556);
GTIFKeySet(gtif, GeogInvFlatteningGeoKey, TYPE_DOUBLE, 1, (double)300.8017);
}
void WriteImage(TIFF *tif)
{
int i;
char buffer[WIDTH];
memset(buffer,0,(size_t)WIDTH);
for (i=0;i<HEIGHT;i++)
if (!TIFFWriteScanline(tif, buffer, i, 0))
TIFFError("WriteImage","failure in WriteScanline\n");
}
bgldec AA_Jordan_066.bgl BMPMASK-STITCH jordan