⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 jas_image.h

📁 JPEG2000软件Jasper的C源代码
💻 H
📖 第 1 页 / 共 2 页
字号:
/* * Copyright (c) 1999-2000 Image Power, Inc. and the University of *   British Columbia. * Copyright (c) 2001-2003 Michael David Adams. * All rights reserved. *//* __START_OF_JASPER_LICENSE__ *  * JasPer License Version 2.0 *  * Copyright (c) 2001-2006 Michael David Adams * Copyright (c) 1999-2000 Image Power, Inc. * Copyright (c) 1999-2000 The University of British Columbia *  * All rights reserved. *  * Permission is hereby granted, free of charge, to any person (the * "User") obtaining a copy of this software and associated documentation * files (the "Software"), to deal in the Software without restriction, * including without limitation the rights to use, copy, modify, merge, * publish, distribute, and/or sell copies of the Software, and to permit * persons to whom the Software is furnished to do so, subject to the * following conditions: *  * 1.  The above copyright notices and this permission notice (which * includes the disclaimer below) shall be included in all copies or * substantial portions of the Software. *  * 2.  The name of a copyright holder shall not be used to endorse or * promote products derived from the Software without specific prior * written permission. *  * THIS DISCLAIMER OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS * LICENSE.  NO USE OF THE SOFTWARE IS AUTHORIZED HEREUNDER EXCEPT UNDER * THIS DISCLAIMER.  THE SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS * "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING * BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A * PARTICULAR PURPOSE AND NONINFRINGEMENT OF THIRD PARTY RIGHTS.  IN NO * EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL * INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING * FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.  NO ASSURANCES ARE * PROVIDED BY THE COPYRIGHT HOLDERS THAT THE SOFTWARE DOES NOT INFRINGE * THE PATENT OR OTHER INTELLECTUAL PROPERTY RIGHTS OF ANY OTHER ENTITY. * EACH COPYRIGHT HOLDER DISCLAIMS ANY LIABILITY TO THE USER FOR CLAIMS * BROUGHT BY ANY OTHER ENTITY BASED ON INFRINGEMENT OF INTELLECTUAL * PROPERTY RIGHTS OR OTHERWISE.  AS A CONDITION TO EXERCISING THE RIGHTS * GRANTED HEREUNDER, EACH USER HEREBY ASSUMES SOLE RESPONSIBILITY TO SECURE * ANY OTHER INTELLECTUAL PROPERTY RIGHTS NEEDED, IF ANY.  THE SOFTWARE * IS NOT FAULT-TOLERANT AND IS NOT INTENDED FOR USE IN MISSION-CRITICAL * SYSTEMS, SUCH AS THOSE USED IN THE OPERATION OF NUCLEAR FACILITIES, * AIRCRAFT NAVIGATION OR COMMUNICATION SYSTEMS, AIR TRAFFIC CONTROL * SYSTEMS, DIRECT LIFE SUPPORT MACHINES, OR WEAPONS SYSTEMS, IN WHICH * THE FAILURE OF THE SOFTWARE OR SYSTEM COULD LEAD DIRECTLY TO DEATH, * PERSONAL INJURY, OR SEVERE PHYSICAL OR ENVIRONMENTAL DAMAGE ("HIGH * RISK ACTIVITIES").  THE COPYRIGHT HOLDERS SPECIFICALLY DISCLAIM ANY * EXPRESS OR IMPLIED WARRANTY OF FITNESS FOR HIGH RISK ACTIVITIES. *  * __END_OF_JASPER_LICENSE__ *//* * Image Class * * $Id$ */#ifndef JAS_IMAGE_H#define JAS_IMAGE_H/******************************************************************************\* Includes.\******************************************************************************/#include <jasper/jas_config.h>#include <jasper/jas_stream.h>#include <jasper/jas_seq.h>#include <jasper/jas_cm.h>#include <stdio.h>#ifdef __cplusplusextern "C" {#endif/******************************************************************************\* Constants.\******************************************************************************//* * Miscellaneous constants. *//* The threshold at which image data is no longer stored in memory. */#define JAS_IMAGE_INMEMTHRESH	(16 * 1024 * 1024)/* * Component types */#define	JAS_IMAGE_CT_UNKNOWN	0x10000#define	JAS_IMAGE_CT_COLOR(n)	((n) & 0x7fff)#define	JAS_IMAGE_CT_OPACITY	0x08000#define	JAS_IMAGE_CT_RGB_R	0#define	JAS_IMAGE_CT_RGB_G	1#define	JAS_IMAGE_CT_RGB_B	2#define	JAS_IMAGE_CT_YCBCR_Y	0#define	JAS_IMAGE_CT_YCBCR_CB	1#define	JAS_IMAGE_CT_YCBCR_CR	2#define	JAS_IMAGE_CT_GRAY_Y	0/******************************************************************************\* Simple types.\******************************************************************************//* Image coordinate. */typedef int_fast32_t jas_image_coord_t;/* Color space (e.g., RGB, YCbCr). */typedef int_fast16_t jas_image_colorspc_t;/* Component type (e.g., color, opacity). */typedef int_fast32_t jas_image_cmpttype_t;/* Component sample data format (e.g., real/integer, signedness, precision). */typedef int_fast16_t jas_image_smpltype_t;/******************************************************************************\* Image class and supporting classes.\******************************************************************************//* Image component class. */typedef struct {	jas_image_coord_t tlx_;	/* The x-coordinate of the top-left corner of the component. */	jas_image_coord_t tly_;	/* The y-coordinate of the top-left corner of the component. */	jas_image_coord_t hstep_;	/* The horizontal sampling period in units of the reference grid. */	jas_image_coord_t vstep_;	/* The vertical sampling period in units of the reference grid. */	jas_image_coord_t width_;	/* The component width in samples. */	jas_image_coord_t height_;	/* The component height in samples. */#ifdef FIX_ME	int smpltype_;#else	int prec_;	/* The precision of the sample data (i.e., the number of bits per	sample).  If the samples are signed values, this quantity	includes the sign bit. */	int sgnd_;	/* The signedness of the sample data. */#endif	jas_stream_t *stream_;	/* The stream containing the component data. */	int cps_;	/* The number of characters per sample in the stream. */	jas_image_cmpttype_t type_;	/* The type of component (e.g., opacity, red, green, blue, luma). */} jas_image_cmpt_t;/* Image class. */typedef struct {	jas_image_coord_t tlx_;	/* The x-coordinate of the top-left corner of the image bounding box. */	jas_image_coord_t tly_;	/* The y-coordinate of the top-left corner of the image bounding box. */	jas_image_coord_t brx_;	/* The x-coordinate of the bottom-right corner of the image bounding	  box (plus one). */	jas_image_coord_t bry_;	/* The y-coordinate of the bottom-right corner of the image bounding	  box (plus one). */	int numcmpts_;	/* The number of components. */	int maxcmpts_;	/* The maximum number of components that this image can have (i.e., the	  allocated size of the components array). */	jas_image_cmpt_t **cmpts_;	/* Per-component information. */	jas_clrspc_t clrspc_;	jas_cmprof_t *cmprof_;	bool inmem_;} jas_image_t;/* Component parameters class. *//* This data type exists solely/mainly for the purposes of the  jas_image_create function. */typedef struct {	jas_image_coord_t tlx;	/* The x-coordinate of the top-left corner of the component. */	jas_image_coord_t tly;	/* The y-coordinate of the top-left corner of the component. */	jas_image_coord_t hstep;	/* The horizontal sampling period in units of the reference grid. */	jas_image_coord_t vstep;	/* The vertical sampling period in units of the reference grid. */	jas_image_coord_t width;	/* The width of the component in samples. */	jas_image_coord_t height;	/* The height of the component in samples. */#ifdef FIX_ME	int smpltype;#else	int prec;	/* The precision of the component sample data. */	int sgnd;	/* The signedness of the component sample data. */#endif} jas_image_cmptparm_t;/******************************************************************************\* File format related classes.\******************************************************************************/#define	JAS_IMAGE_MAXFMTS	32/* The maximum number of image data formats supported. *//* Image format-dependent operations. */typedef struct {	jas_image_t *(*decode)(jas_stream_t *in, char *opts);	/* Decode image data from a stream. */	int (*encode)(jas_image_t *image, jas_stream_t *out, char *opts);	/* Encode image data to a stream. */	int (*validate)(jas_stream_t *in);	/* Determine if stream data is in a particular format. */} jas_image_fmtops_t;/* Image format information. */typedef struct {	int id;	/* The ID for this format. */	char *name;	/* The name by which this format is identified. */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -