This is JpegDecode.h in view mode; [Download] [Up]
/*
File: JpegDecode.h
Release: 1.0
Written by Georges CHAN
Purpose: declare JpegDecode class lib methods.
Copyright, All right reserved.
Date: September 92.
Feel free to use this class in your application,
but do not modify the source code.
This file is provided to all registered user.
Note: The author disclaims all warranties with regard to this
software, including all implied warranties or merchantability,
in no event shall the author be liable for 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 tortuous action,
arising out of or in connection with the use of this software.
*/
// MARKER CONSTANT VALUES
#define SOF0 0xc0 // Start Of Frame 0 (baseline DCT Huff)
#define SOF1 0xc1 // Start Of Frame 1 (extended seq DCT Huff)
#define SOF2 0xc2 // Start Of Frame 2 (progressive DCT Huff)
#define SOF3 0xc3 // Start Of Frame 3 (spacial lossless Huff)
#define SOF5 0xc5 // Start Of Frame 5 (differential seq DCT Huff)
#define SOF6 0xc6 // Start Of Frame 6 (differential progressive DCT Huff)
#define SOF7 0xc7 // Start Of Frame 7 (differential spatial Huff)
#define SOF8 0xc8 // Start Of Frame 8
#define SOF9 0xc9 // Start Of Frame 9 (extended seq DCT arithmetic)
#define SOF10 0xca // Start Of Frame 10 (progressive DCT arithmetic)
#define SOF11 0xcb // Start Of Frame 11 (spatial lossless arithmetic)
#define SOF13 0xcd // Start Of Frame 13 (differential seq DCT arithmetic)
#define SOF14 0xce // Start Of Frame 14 (differential progressive DCT arithmetic)
#define SOF15 0xcf // Start Of Frame 15 (differential spatial arithmetic)
#define RST0 0xd0
#define RST1 0xd1
#define RST2 0xd2
#define RST3 0xd3
#define RST4 0xd4
#define RST5 0xd5
#define RST6 0xd6
#define RST7 0xd7
#define APP0 0xe0 // application 0 marker
#define APP15 0xef // application 15 marker
#define DAC 0xcc // Definitions AC coef Table marker
#define DHT 0xc4 // Definitions Huffman Table marker
#define DQT 0xdb // Definitions Quantization Table marker
#define DRI 0xdd
#define JPG 0xc8
#define SOI 0xd8 // Start Of Image
#define EOI 0xd9
#define SOS 0xda
#define TEM 1
/* CONSTANT SIZE */
#define MAXQT 4 // maximum number of quantization tables allowed
#define MAXACT 4 // maximum number of arithmetic code tables
#define MAXDHT 4 // maximum number of huffman tables allowed
#define MAXCOMP 4 // maximum number of components allowed
#define MAXCOMPSCAN 4 // maximum number of components per scan
#define MATSIZE 64 // number of elements in a block matrix
#define DCTSIZE 8 // size of DCT block (8x8)
#define BITPERPIXEL 8 // number of bits in each component of a pixel
#define MAXVAL 255 // maximum value of each pixel channel
#define MIDVAL 128 // middle value of each pixel channel
#define DC 0 // mode for filling DC huffman table
#define AC 1 // mode for filling AC huffman table
#define GRAY 0 // constant for picture of gray color space
#define YIQ 1 // constant for picture of YIQ color space
#define YCBCR 2 // constant for picture of YCbCr color space
#define CMYK 3 // constant for picture of CMYK color space
struct Htable
{
int valpos[16],
min[16],
max[18];
unsigned char value[256];
};
typedef struct Htable huffTable;
#import <objc/Object.h>
#import <appkit/graphics.h>
@interface JpegDecode:Object
{
int fd, // file descriptor for input file
bitsLeft, // no of bits available in buffer safe
safe, // value of data in buffer
restartInterval, // value for restart interval
resetCount, // count down for resetting
bitPPixel, // number of bits per pixel
compScan, // number of components per scan
imageWidth, // width of the image
imageHeight, // height of the image
noComponent, // number of components for image
hFact[MAXQT], // horizontal sampling factor of each component
vFact[MAXQT], // vertical sampling factor of each component
maxhFact, // maximum horizontal factor
maxvFact, // maximum vertical factor
qTno[MAXQT], // quantization table number
dcTabNo[MAXDHT], // dc table number
acTabNo[MAXDHT], // ac table number
compId[MAXDHT], // id of the component
lastDCval[MAXDHT], // last dc value of each component
mcuHeight[MAXCOMP], // number of blocks per MCU vertical
mcuWidth[MAXCOMP], // number of blocks per MCU horizontal
mcuBlock[MAXCOMP], // number of blocks of MCU
QT[MAXQT][MATSIZE], // quatization tables
colorSpace; // color type of the image
huffTable DChuffTab[MAXDHT], // huffman table for dc coeff
AChuffTab[MAXDHT]; // huffman table for ac coeff
}
- initFromFile :(const char*) filename
bitMap :(id *) bMap
size :(NXSize *) bitMapSize
mustSee :(BOOL) flag;
- initFromFile :(const char*) filename
image :(id *) im
size :(NXSize *) imageSize
mustSee :(BOOL) flag;
@end
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.