cdesktopenv/cde/lib/DtHelp/il/ilfile.h

255 lines
7.8 KiB
C

/*
* CDE - Common Desktop Environment
*
* Copyright (c) 1993-2012, The Open Group. All rights reserved.
*
* These libraries and programs are free software; you can
* redistribute them and/or modify them under the terms of the GNU
* Lesser General Public License as published by the Free Software
* Foundation; either version 2 of the License, or (at your option)
* any later version.
*
* These libraries and programs are distributed in the hope that
* they will be useful, but WITHOUT ANY WARRANTY; without even the
* implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
* PURPOSE. See the GNU Lesser General Public License for more
* details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with these libraries and programs; if not, write
* to the Free Software Foundation, Inc., 51 Franklin Street, Fifth
* Floor, Boston, MA 02110-1301 USA
*/
/* $XConsortium: ilfile.h /main/4 1995/12/19 16:54:40 cde-dec $ */
/**---------------------------------------------------------------------
***
*** file: ilfile.h
***
*** description: Public declarations and functions for accessing
*** TIFF files with the Image Library (IL).
***
***
*** (c)Copyright 1991, 1993 Hewlett-Packard Co.
***
*** RESTRICTED RIGHTS LEGEND
*** Use, duplication, or disclosure by the U.S. Government is subject to
*** restrictions as set forth in sub-paragraph (c)(1)(ii) of the Rights in
*** Technical Data and Computer Software clause in DFARS 252.227-7013.
*** Hewlett-Packard Company
*** 3000 Hanover Street
*** Palo Alto, CA 94304 U.S.A.
*** Rights for non-DOD U.S. Government Departments and Agencies are as set
*** forth in FAR 52.227-19(c)(1,2).
***
***-------------------------------------------------------------------*/
#ifndef ILFILE_H
#define ILFILE_H
#include <stdio.h>
#ifndef IL_H
#include "il.h"
#endif
#ifdef DTLIB
/* Used when this header is compiled into the DtHelp library */
#include "GraphicsP.h"
#endif /* DTLIB */
#ifndef NeedFunctionPrototypes
#if defined(FUNCPROTO) || defined(__STDC__) || defined(__cplusplus) || defined(c_plusplus)
#define NeedFunctionPrototypes 1
#else
#define NeedFunctionPrototypes 0
#endif /* __STDC__ */
#endif /* NeedFunctionPrototypes */
#ifndef NeedWidePrototypes
#if defined(NARROWPROTO)
#define NeedWidePrototypes 0
#else
#define NeedWidePrototypes 1 /* default to make interropt. easier */
#endif
#endif
#ifdef __cplusplus /* do not leave open across includes */
extern "C" { /* for C++ V2.0 */
#endif
/* ilFileTag.type */
#define IL_TAG_BYTE 1
#define IL_TAG_ASCII 2
#define IL_TAG_SHORT 3
#define IL_TAG_LONG 4
#define IL_TAG_RATIONAL 5
#define IL_MAX_TAG_TYPE 5
/* Tags not read or written by the IL - caller
may read them with ilReadFileTags() or write them
using ilWriteFileImage().
*/
#define IL_TAG_DOCUMENT_NAME 269
#define IL_TAG_IMAGE_DESCRIPTION 270
#define IL_TAG_MAKE 271
#define IL_TAG_MODEL 272
#define IL_TAG_PAGE_NAME 285
#define IL_TAG_X_POSITION 286
#define IL_TAG_Y_POSITION 287
#define IL_TAG_TRANSFER_FUNCTION 301
#define IL_TAG_DATE_TIME 306
#define IL_TAG_ARTIST 315
#define IL_TAG_HOST_COMPUTER 316
#define IL_TAG_WHITE_POINT 318
#define IL_TAG_PRIMARY_CHROMATICITIES 319
#define IL_TAG_TRANSFER_RANGE 342
/* Tags explicitly read and written (when appropriate)
by the IL. These tags cannot be written by the caller
using ilWriteFileImage(), because the IL-defined values
will override those specified by the caller.
*/
#define IL_TAG_NEW_SUBFILE_TYPE 254
#define IL_TAG_IMAGE_WIDTH 256
#define IL_TAG_IMAGE_LENGTH 257
#define IL_TAG_BITS_PER_SAMPLE 258
#define IL_TAG_COMPRESSION 259
#define IL_TAG_PHOTOMETRIC_INTERPRETATION 262
#define IL_TAG_FILL_ORDER 266 /* TIFF class F only */
#define IL_TAG_STRIP_OFFSETS 273
#define IL_TAG_SAMPLES_PER_PIXEL 277
#define IL_TAG_ROWS_PER_STRIP 278
#define IL_TAG_STRIP_BYTE_COUNTS 279
#define IL_TAG_X_RESOLUTION 282
#define IL_TAG_Y_RESOLUTION 283
#define IL_TAG_PLANAR_CONFIGURATION 284
#define IL_TAG_GROUP_3_OPTIONS 292
#define IL_TAG_GROUP_4_OPTIONS 293
#define IL_TAG_RESOLUTION_UNIT 296
#define IL_TAG_PAGE_NUMBER 297
#define IL_TAG_PREDICTOR 317
#define IL_TAG_SOFTWARE 305
#define IL_TAG_COLOR_MAP 320
#define IL_TAG_JPEG_PROC 512
#define IL_TAG_JPEG_INTERCHANGE_FORMAT 513
#define IL_TAG_JPEG_INTERCHANGE_FORMAT_LENGTH 514
#define IL_TAG_JPEG_RESTART_INTERVAL 515
#define IL_TAG_JPEG_Q_TABLES 519
#define IL_TAG_JPEG_DC_TABLES 520
#define IL_TAG_JPEG_AC_TABLES 521
#define IL_TAG_YCBCR_COEFFICIENTS 529
#define IL_TAG_YCBCR_SUBSAMPLING 530
#define IL_TAG_YCBCR_POSITIONING 531
#define IL_TAG_REFERENCE_BLACK_WHITE 532
#define IL_TAG_PRIVATE_0 34209
/* ilWriteFileImage (method) */
#define IL_WRITE_MAIN 0
#define IL_WRITE_MASK 1
#define IL_WRITE_CHILD 2
/* ilWriteFileImage (compression) */
#define IL_WRITE_CURRENT_COMPRESSION (~0)
typedef ilObject ilFile;
typedef struct _ilFileImage {
ilFile file;
struct _ilFileImage *pNext, *pPrev,
*pMask,
*pChild;
long width, height;
long xRes, yRes;
short page, nPages;
ilImageDes des;
ilImageFormat format;
long stripHeight;
} ilFileImagePublicRec;
typedef ilFileImagePublicRec *ilFileImage;
/* TIFF file access types */
typedef struct {
unsigned short number;
unsigned short type;
unsigned long nItems;
ilPtr pItems;
} ilFileTag;
extern ilBool ilInitFile (
#if NeedFunctionPrototypes
ilContext context,
FILE *stream,
long offset,
ilBool MSBIsFirst,
unsigned long mustBeZero
#endif
);
extern ilFile ilConnectFile (
#if NeedFunctionPrototypes
ilContext context,
#ifdef DTLIB
/* Used when this header is compiled into the DtHelp library */
_DtGrStream *stream,
#else
FILE *stream,
#endif /* DTLIB */
long offset,
unsigned long mustBeZero
#endif
);
extern ilFileImage ilListFileImages (
#if NeedFunctionPrototypes
ilFile file,
unsigned long mustBeZero
#endif
);
extern ilPtr ilReadFileTags (
#if NeedFunctionPrototypes
ilFileImage fileImage,
int nTags,
unsigned short *pTagNumbers,
ilFileTag **ppTags,
unsigned long mustBeZero
#endif
);
extern ilBool ilReadFileImage (
#if NeedFunctionPrototypes
ilPipe pipe,
ilFileImage fileImage,
ilRect *pSrcRect,
unsigned long mustBeZero
#endif
);
extern ilBool ilWriteFileImage (
#if NeedFunctionPrototypes
ilPipe pipe,
ilFile file,
unsigned int method,
ilFileImage fileImage,
unsigned int compression,
ilPtr pCompressionData,
long stripHeight,
long xRes,
long yRes,
short page,
short nPages,
int nTags,
ilFileTag *pTags,
unsigned long mustBeZero
#endif
);
#ifdef __cplusplus
} /* for C++ V2.0 */
#endif
#endif