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

📄 io.h

📁 很好的JPEG图象解码器,基于VC环境开发。
💻 H
字号:
/* * Copyright (C) 1991, 1992, Thomas G. Lane. * Part of the Independent JPEG Group's software. * See the file Copyright for more details. * * Copyright (c) 1993 Brian C. Smith, The Regents of the University * of California * All rights reserved. *  * Copyright (c) 1994 Kongji Huang and Brian C. Smith. * Cornell University * All rights reserved. *  * Permission to use, copy, modify, and distribute this software and its * documentation for any purpose, without fee, and without written agreement is * hereby granted, provided that the above copyright notice and the following * two paragraphs appear in all copies of this software. *  * IN NO EVENT SHALL CORNELL UNIVERSITY BE LIABLE TO ANY PARTY FOR * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT * OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF CORNELL * UNIVERSITY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *  * CORNELL UNIVERSITY SPECIFICALLY DISCLAIMS ANY WARRANTIES, * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY * AND FITNESS FOR A PARTICULAR PURPOSE.  THE SOFTWARE PROVIDED HEREUNDER IS * ON AN "AS IS" BASIS, AND CORNELL UNIVERSITY HAS NO OBLIGATION TO * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. */#ifndef _IO#define _IO/* * Size of the input and output buffer */#define JPEG_BUF_SIZE   4096/* * The following variables keep track of the input and output * buffer for the JPEG data. */extern char outputBuffer[JPEG_BUF_SIZE];     /* output buffer              */extern int numOutputBytes;                   /* bytes in the output buffer */extern Uchar inputBuffer[JPEG_BUF_SIZE];     /* Input buffer for JPEG data */extern int numInputBytes;                    /* bytes in inputBuffer       */extern int maxInputBytes;                    /* Size of inputBuffer        */extern int inputBufferOffset;                /* Offset of current byte     *//* * the output file pointer.  */extern FILE *outFile;/* *-------------------------------------------------------------- * * EmitByte -- * *	Write a single byte out to the output buffer, and *	flush if it's full. * * Results: *	None. * * Side effects: *	The outp[ut buffer may get flushed. * *-------------------------------------------------------------- */#define EmitByte(val)  {						\    if (numOutputBytes >= JPEG_BUF_SIZE) {				\	FlushBytes();							\    }									\    outputBuffer[numOutputBytes++] = (char)(val);			\}/* *-------------------------------------------------------------- * * GetJpegChar, UnGetJpegChar -- * *      Macros to get the next character from the input stream. * * Results: *      GetJpegChar returns the next character in the stream, or EOF *      UnGetJpegChar returns nothing. * * Side effects: *      A byte is consumed or put back into the inputBuffer. * *-------------------------------------------------------------- */#define GetJpegChar()                                                   \    ((inputBufferOffset < numInputBytes)?                               \     inputBuffer[inputBufferOffset++]:                                  \     (numInputBytes = 2+ReadJpegData(inputBuffer+2,JPEG_BUF_SIZE-2),    \      inputBufferOffset = 2,                                            \      ((inputBufferOffset < numInputBytes)?                             \       inputBuffer[inputBufferOffset++]:                                \       EOF)))#define UnGetJpegChar(ch)       (inputBuffer[--inputBufferOffset]=(ch))#endif /* _IO */

⌨️ 快捷键说明

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