mirror of
https://github.com/dhewm/dhewm3-libs.git
synced 2024-11-22 20:21:42 +00:00
Add jpeg-8c for i686-w64-mingw32
./configure --host=i686-w64-mingw32 \ --prefix=$HOME/devel/games/doom3-libs/i686-w64-mingw32
This commit is contained in:
parent
e8845d663d
commit
bd776b16b8
18 changed files with 2972 additions and 0 deletions
BIN
i686-w64-mingw32/bin/cjpeg.exe
Executable file
BIN
i686-w64-mingw32/bin/cjpeg.exe
Executable file
Binary file not shown.
BIN
i686-w64-mingw32/bin/djpeg.exe
Executable file
BIN
i686-w64-mingw32/bin/djpeg.exe
Executable file
Binary file not shown.
BIN
i686-w64-mingw32/bin/jpegtran.exe
Executable file
BIN
i686-w64-mingw32/bin/jpegtran.exe
Executable file
Binary file not shown.
BIN
i686-w64-mingw32/bin/libjpeg-8.dll
Executable file
BIN
i686-w64-mingw32/bin/libjpeg-8.dll
Executable file
Binary file not shown.
BIN
i686-w64-mingw32/bin/rdjpgcom.exe
Executable file
BIN
i686-w64-mingw32/bin/rdjpgcom.exe
Executable file
Binary file not shown.
BIN
i686-w64-mingw32/bin/wrjpgcom.exe
Executable file
BIN
i686-w64-mingw32/bin/wrjpgcom.exe
Executable file
Binary file not shown.
54
i686-w64-mingw32/include/jconfig.h
Normal file
54
i686-w64-mingw32/include/jconfig.h
Normal file
|
@ -0,0 +1,54 @@
|
||||||
|
/* jconfig.h. Generated from jconfig.cfg by configure. */
|
||||||
|
/* jconfig.cfg --- source file edited by configure script */
|
||||||
|
/* see jconfig.txt for explanations */
|
||||||
|
|
||||||
|
#define HAVE_PROTOTYPES 1
|
||||||
|
#define HAVE_UNSIGNED_CHAR 1
|
||||||
|
#define HAVE_UNSIGNED_SHORT 1
|
||||||
|
/* #undef void */
|
||||||
|
/* #undef const */
|
||||||
|
/* #undef CHAR_IS_UNSIGNED */
|
||||||
|
#define HAVE_STDDEF_H 1
|
||||||
|
#define HAVE_STDLIB_H 1
|
||||||
|
#define HAVE_LOCALE_H 1
|
||||||
|
/* #undef NEED_BSD_STRINGS */
|
||||||
|
/* #undef NEED_SYS_TYPES_H */
|
||||||
|
/* #undef NEED_FAR_POINTERS */
|
||||||
|
/* #undef NEED_SHORT_EXTERNAL_NAMES */
|
||||||
|
/* Define this if you get warnings about undefined structures. */
|
||||||
|
/* #undef INCOMPLETE_TYPES_BROKEN */
|
||||||
|
|
||||||
|
/* Define "boolean" as unsigned char, not int, on Windows systems. */
|
||||||
|
#ifdef _WIN32
|
||||||
|
#ifndef __RPCNDR_H__ /* don't conflict if rpcndr.h already read */
|
||||||
|
typedef unsigned char boolean;
|
||||||
|
#endif
|
||||||
|
#define HAVE_BOOLEAN /* prevent jmorecfg.h from redefining it */
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef JPEG_INTERNALS
|
||||||
|
|
||||||
|
/* #undef RIGHT_SHIFT_IS_UNSIGNED */
|
||||||
|
#define INLINE __inline__
|
||||||
|
/* These are for configuring the JPEG memory manager. */
|
||||||
|
/* #undef DEFAULT_MAX_MEM */
|
||||||
|
/* #undef NO_MKTEMP */
|
||||||
|
|
||||||
|
#endif /* JPEG_INTERNALS */
|
||||||
|
|
||||||
|
#ifdef JPEG_CJPEG_DJPEG
|
||||||
|
|
||||||
|
#define BMP_SUPPORTED /* BMP image file format */
|
||||||
|
#define GIF_SUPPORTED /* GIF image file format */
|
||||||
|
#define PPM_SUPPORTED /* PBMPLUS PPM/PGM image file format */
|
||||||
|
/* #undef RLE_SUPPORTED */
|
||||||
|
#define TARGA_SUPPORTED /* Targa image file format */
|
||||||
|
|
||||||
|
/* #undef TWO_FILE_COMMANDLINE */
|
||||||
|
/* #undef NEED_SIGNAL_CATCHER */
|
||||||
|
/* #undef DONT_USE_B_MODE */
|
||||||
|
|
||||||
|
/* Define this if you want percent-done progress reports from cjpeg/djpeg. */
|
||||||
|
/* #undef PROGRESS_REPORT */
|
||||||
|
|
||||||
|
#endif /* JPEG_CJPEG_DJPEG */
|
304
i686-w64-mingw32/include/jerror.h
Normal file
304
i686-w64-mingw32/include/jerror.h
Normal file
|
@ -0,0 +1,304 @@
|
||||||
|
/*
|
||||||
|
* jerror.h
|
||||||
|
*
|
||||||
|
* Copyright (C) 1994-1997, Thomas G. Lane.
|
||||||
|
* Modified 1997-2009 by Guido Vollbeding.
|
||||||
|
* This file is part of the Independent JPEG Group's software.
|
||||||
|
* For conditions of distribution and use, see the accompanying README file.
|
||||||
|
*
|
||||||
|
* This file defines the error and message codes for the JPEG library.
|
||||||
|
* Edit this file to add new codes, or to translate the message strings to
|
||||||
|
* some other language.
|
||||||
|
* A set of error-reporting macros are defined too. Some applications using
|
||||||
|
* the JPEG library may wish to include this file to get the error codes
|
||||||
|
* and/or the macros.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* To define the enum list of message codes, include this file without
|
||||||
|
* defining macro JMESSAGE. To create a message string table, include it
|
||||||
|
* again with a suitable JMESSAGE definition (see jerror.c for an example).
|
||||||
|
*/
|
||||||
|
#ifndef JMESSAGE
|
||||||
|
#ifndef JERROR_H
|
||||||
|
/* First time through, define the enum list */
|
||||||
|
#define JMAKE_ENUM_LIST
|
||||||
|
#else
|
||||||
|
/* Repeated inclusions of this file are no-ops unless JMESSAGE is defined */
|
||||||
|
#define JMESSAGE(code,string)
|
||||||
|
#endif /* JERROR_H */
|
||||||
|
#endif /* JMESSAGE */
|
||||||
|
|
||||||
|
#ifdef JMAKE_ENUM_LIST
|
||||||
|
|
||||||
|
typedef enum {
|
||||||
|
|
||||||
|
#define JMESSAGE(code,string) code ,
|
||||||
|
|
||||||
|
#endif /* JMAKE_ENUM_LIST */
|
||||||
|
|
||||||
|
JMESSAGE(JMSG_NOMESSAGE, "Bogus message code %d") /* Must be first entry! */
|
||||||
|
|
||||||
|
/* For maintenance convenience, list is alphabetical by message code name */
|
||||||
|
JMESSAGE(JERR_BAD_ALIGN_TYPE, "ALIGN_TYPE is wrong, please fix")
|
||||||
|
JMESSAGE(JERR_BAD_ALLOC_CHUNK, "MAX_ALLOC_CHUNK is wrong, please fix")
|
||||||
|
JMESSAGE(JERR_BAD_BUFFER_MODE, "Bogus buffer control mode")
|
||||||
|
JMESSAGE(JERR_BAD_COMPONENT_ID, "Invalid component ID %d in SOS")
|
||||||
|
JMESSAGE(JERR_BAD_CROP_SPEC, "Invalid crop request")
|
||||||
|
JMESSAGE(JERR_BAD_DCT_COEF, "DCT coefficient out of range")
|
||||||
|
JMESSAGE(JERR_BAD_DCTSIZE, "DCT scaled block size %dx%d not supported")
|
||||||
|
JMESSAGE(JERR_BAD_DROP_SAMPLING,
|
||||||
|
"Component index %d: mismatching sampling ratio %d:%d, %d:%d, %c")
|
||||||
|
JMESSAGE(JERR_BAD_HUFF_TABLE, "Bogus Huffman table definition")
|
||||||
|
JMESSAGE(JERR_BAD_IN_COLORSPACE, "Bogus input colorspace")
|
||||||
|
JMESSAGE(JERR_BAD_J_COLORSPACE, "Bogus JPEG colorspace")
|
||||||
|
JMESSAGE(JERR_BAD_LENGTH, "Bogus marker length")
|
||||||
|
JMESSAGE(JERR_BAD_LIB_VERSION,
|
||||||
|
"Wrong JPEG library version: library is %d, caller expects %d")
|
||||||
|
JMESSAGE(JERR_BAD_MCU_SIZE, "Sampling factors too large for interleaved scan")
|
||||||
|
JMESSAGE(JERR_BAD_POOL_ID, "Invalid memory pool code %d")
|
||||||
|
JMESSAGE(JERR_BAD_PRECISION, "Unsupported JPEG data precision %d")
|
||||||
|
JMESSAGE(JERR_BAD_PROGRESSION,
|
||||||
|
"Invalid progressive parameters Ss=%d Se=%d Ah=%d Al=%d")
|
||||||
|
JMESSAGE(JERR_BAD_PROG_SCRIPT,
|
||||||
|
"Invalid progressive parameters at scan script entry %d")
|
||||||
|
JMESSAGE(JERR_BAD_SAMPLING, "Bogus sampling factors")
|
||||||
|
JMESSAGE(JERR_BAD_SCAN_SCRIPT, "Invalid scan script at entry %d")
|
||||||
|
JMESSAGE(JERR_BAD_STATE, "Improper call to JPEG library in state %d")
|
||||||
|
JMESSAGE(JERR_BAD_STRUCT_SIZE,
|
||||||
|
"JPEG parameter struct mismatch: library thinks size is %u, caller expects %u")
|
||||||
|
JMESSAGE(JERR_BAD_VIRTUAL_ACCESS, "Bogus virtual array access")
|
||||||
|
JMESSAGE(JERR_BUFFER_SIZE, "Buffer passed to JPEG library is too small")
|
||||||
|
JMESSAGE(JERR_CANT_SUSPEND, "Suspension not allowed here")
|
||||||
|
JMESSAGE(JERR_CCIR601_NOTIMPL, "CCIR601 sampling not implemented yet")
|
||||||
|
JMESSAGE(JERR_COMPONENT_COUNT, "Too many color components: %d, max %d")
|
||||||
|
JMESSAGE(JERR_CONVERSION_NOTIMPL, "Unsupported color conversion request")
|
||||||
|
JMESSAGE(JERR_DAC_INDEX, "Bogus DAC index %d")
|
||||||
|
JMESSAGE(JERR_DAC_VALUE, "Bogus DAC value 0x%x")
|
||||||
|
JMESSAGE(JERR_DHT_INDEX, "Bogus DHT index %d")
|
||||||
|
JMESSAGE(JERR_DQT_INDEX, "Bogus DQT index %d")
|
||||||
|
JMESSAGE(JERR_EMPTY_IMAGE, "Empty JPEG image (DNL not supported)")
|
||||||
|
JMESSAGE(JERR_EMS_READ, "Read from EMS failed")
|
||||||
|
JMESSAGE(JERR_EMS_WRITE, "Write to EMS failed")
|
||||||
|
JMESSAGE(JERR_EOI_EXPECTED, "Didn't expect more than one scan")
|
||||||
|
JMESSAGE(JERR_FILE_READ, "Input file read error")
|
||||||
|
JMESSAGE(JERR_FILE_WRITE, "Output file write error --- out of disk space?")
|
||||||
|
JMESSAGE(JERR_FRACT_SAMPLE_NOTIMPL, "Fractional sampling not implemented yet")
|
||||||
|
JMESSAGE(JERR_HUFF_CLEN_OVERFLOW, "Huffman code size table overflow")
|
||||||
|
JMESSAGE(JERR_HUFF_MISSING_CODE, "Missing Huffman code table entry")
|
||||||
|
JMESSAGE(JERR_IMAGE_TOO_BIG, "Maximum supported image dimension is %u pixels")
|
||||||
|
JMESSAGE(JERR_INPUT_EMPTY, "Empty input file")
|
||||||
|
JMESSAGE(JERR_INPUT_EOF, "Premature end of input file")
|
||||||
|
JMESSAGE(JERR_MISMATCHED_QUANT_TABLE,
|
||||||
|
"Cannot transcode due to multiple use of quantization table %d")
|
||||||
|
JMESSAGE(JERR_MISSING_DATA, "Scan script does not transmit all data")
|
||||||
|
JMESSAGE(JERR_MODE_CHANGE, "Invalid color quantization mode change")
|
||||||
|
JMESSAGE(JERR_NOTIMPL, "Not implemented yet")
|
||||||
|
JMESSAGE(JERR_NOT_COMPILED, "Requested feature was omitted at compile time")
|
||||||
|
JMESSAGE(JERR_NO_ARITH_TABLE, "Arithmetic table 0x%02x was not defined")
|
||||||
|
JMESSAGE(JERR_NO_BACKING_STORE, "Backing store not supported")
|
||||||
|
JMESSAGE(JERR_NO_HUFF_TABLE, "Huffman table 0x%02x was not defined")
|
||||||
|
JMESSAGE(JERR_NO_IMAGE, "JPEG datastream contains no image")
|
||||||
|
JMESSAGE(JERR_NO_QUANT_TABLE, "Quantization table 0x%02x was not defined")
|
||||||
|
JMESSAGE(JERR_NO_SOI, "Not a JPEG file: starts with 0x%02x 0x%02x")
|
||||||
|
JMESSAGE(JERR_OUT_OF_MEMORY, "Insufficient memory (case %d)")
|
||||||
|
JMESSAGE(JERR_QUANT_COMPONENTS,
|
||||||
|
"Cannot quantize more than %d color components")
|
||||||
|
JMESSAGE(JERR_QUANT_FEW_COLORS, "Cannot quantize to fewer than %d colors")
|
||||||
|
JMESSAGE(JERR_QUANT_MANY_COLORS, "Cannot quantize to more than %d colors")
|
||||||
|
JMESSAGE(JERR_SOF_DUPLICATE, "Invalid JPEG file structure: two SOF markers")
|
||||||
|
JMESSAGE(JERR_SOF_NO_SOS, "Invalid JPEG file structure: missing SOS marker")
|
||||||
|
JMESSAGE(JERR_SOF_UNSUPPORTED, "Unsupported JPEG process: SOF type 0x%02x")
|
||||||
|
JMESSAGE(JERR_SOI_DUPLICATE, "Invalid JPEG file structure: two SOI markers")
|
||||||
|
JMESSAGE(JERR_SOS_NO_SOF, "Invalid JPEG file structure: SOS before SOF")
|
||||||
|
JMESSAGE(JERR_TFILE_CREATE, "Failed to create temporary file %s")
|
||||||
|
JMESSAGE(JERR_TFILE_READ, "Read failed on temporary file")
|
||||||
|
JMESSAGE(JERR_TFILE_SEEK, "Seek failed on temporary file")
|
||||||
|
JMESSAGE(JERR_TFILE_WRITE,
|
||||||
|
"Write failed on temporary file --- out of disk space?")
|
||||||
|
JMESSAGE(JERR_TOO_LITTLE_DATA, "Application transferred too few scanlines")
|
||||||
|
JMESSAGE(JERR_UNKNOWN_MARKER, "Unsupported marker type 0x%02x")
|
||||||
|
JMESSAGE(JERR_VIRTUAL_BUG, "Virtual array controller messed up")
|
||||||
|
JMESSAGE(JERR_WIDTH_OVERFLOW, "Image too wide for this implementation")
|
||||||
|
JMESSAGE(JERR_XMS_READ, "Read from XMS failed")
|
||||||
|
JMESSAGE(JERR_XMS_WRITE, "Write to XMS failed")
|
||||||
|
JMESSAGE(JMSG_COPYRIGHT, JCOPYRIGHT)
|
||||||
|
JMESSAGE(JMSG_VERSION, JVERSION)
|
||||||
|
JMESSAGE(JTRC_16BIT_TABLES,
|
||||||
|
"Caution: quantization tables are too coarse for baseline JPEG")
|
||||||
|
JMESSAGE(JTRC_ADOBE,
|
||||||
|
"Adobe APP14 marker: version %d, flags 0x%04x 0x%04x, transform %d")
|
||||||
|
JMESSAGE(JTRC_APP0, "Unknown APP0 marker (not JFIF), length %u")
|
||||||
|
JMESSAGE(JTRC_APP14, "Unknown APP14 marker (not Adobe), length %u")
|
||||||
|
JMESSAGE(JTRC_DAC, "Define Arithmetic Table 0x%02x: 0x%02x")
|
||||||
|
JMESSAGE(JTRC_DHT, "Define Huffman Table 0x%02x")
|
||||||
|
JMESSAGE(JTRC_DQT, "Define Quantization Table %d precision %d")
|
||||||
|
JMESSAGE(JTRC_DRI, "Define Restart Interval %u")
|
||||||
|
JMESSAGE(JTRC_EMS_CLOSE, "Freed EMS handle %u")
|
||||||
|
JMESSAGE(JTRC_EMS_OPEN, "Obtained EMS handle %u")
|
||||||
|
JMESSAGE(JTRC_EOI, "End Of Image")
|
||||||
|
JMESSAGE(JTRC_HUFFBITS, " %3d %3d %3d %3d %3d %3d %3d %3d")
|
||||||
|
JMESSAGE(JTRC_JFIF, "JFIF APP0 marker: version %d.%02d, density %dx%d %d")
|
||||||
|
JMESSAGE(JTRC_JFIF_BADTHUMBNAILSIZE,
|
||||||
|
"Warning: thumbnail image size does not match data length %u")
|
||||||
|
JMESSAGE(JTRC_JFIF_EXTENSION,
|
||||||
|
"JFIF extension marker: type 0x%02x, length %u")
|
||||||
|
JMESSAGE(JTRC_JFIF_THUMBNAIL, " with %d x %d thumbnail image")
|
||||||
|
JMESSAGE(JTRC_MISC_MARKER, "Miscellaneous marker 0x%02x, length %u")
|
||||||
|
JMESSAGE(JTRC_PARMLESS_MARKER, "Unexpected marker 0x%02x")
|
||||||
|
JMESSAGE(JTRC_QUANTVALS, " %4u %4u %4u %4u %4u %4u %4u %4u")
|
||||||
|
JMESSAGE(JTRC_QUANT_3_NCOLORS, "Quantizing to %d = %d*%d*%d colors")
|
||||||
|
JMESSAGE(JTRC_QUANT_NCOLORS, "Quantizing to %d colors")
|
||||||
|
JMESSAGE(JTRC_QUANT_SELECTED, "Selected %d colors for quantization")
|
||||||
|
JMESSAGE(JTRC_RECOVERY_ACTION, "At marker 0x%02x, recovery action %d")
|
||||||
|
JMESSAGE(JTRC_RST, "RST%d")
|
||||||
|
JMESSAGE(JTRC_SMOOTH_NOTIMPL,
|
||||||
|
"Smoothing not supported with nonstandard sampling ratios")
|
||||||
|
JMESSAGE(JTRC_SOF, "Start Of Frame 0x%02x: width=%u, height=%u, components=%d")
|
||||||
|
JMESSAGE(JTRC_SOF_COMPONENT, " Component %d: %dhx%dv q=%d")
|
||||||
|
JMESSAGE(JTRC_SOI, "Start of Image")
|
||||||
|
JMESSAGE(JTRC_SOS, "Start Of Scan: %d components")
|
||||||
|
JMESSAGE(JTRC_SOS_COMPONENT, " Component %d: dc=%d ac=%d")
|
||||||
|
JMESSAGE(JTRC_SOS_PARAMS, " Ss=%d, Se=%d, Ah=%d, Al=%d")
|
||||||
|
JMESSAGE(JTRC_TFILE_CLOSE, "Closed temporary file %s")
|
||||||
|
JMESSAGE(JTRC_TFILE_OPEN, "Opened temporary file %s")
|
||||||
|
JMESSAGE(JTRC_THUMB_JPEG,
|
||||||
|
"JFIF extension marker: JPEG-compressed thumbnail image, length %u")
|
||||||
|
JMESSAGE(JTRC_THUMB_PALETTE,
|
||||||
|
"JFIF extension marker: palette thumbnail image, length %u")
|
||||||
|
JMESSAGE(JTRC_THUMB_RGB,
|
||||||
|
"JFIF extension marker: RGB thumbnail image, length %u")
|
||||||
|
JMESSAGE(JTRC_UNKNOWN_IDS,
|
||||||
|
"Unrecognized component IDs %d %d %d, assuming YCbCr")
|
||||||
|
JMESSAGE(JTRC_XMS_CLOSE, "Freed XMS handle %u")
|
||||||
|
JMESSAGE(JTRC_XMS_OPEN, "Obtained XMS handle %u")
|
||||||
|
JMESSAGE(JWRN_ADOBE_XFORM, "Unknown Adobe color transform code %d")
|
||||||
|
JMESSAGE(JWRN_ARITH_BAD_CODE, "Corrupt JPEG data: bad arithmetic code")
|
||||||
|
JMESSAGE(JWRN_BOGUS_PROGRESSION,
|
||||||
|
"Inconsistent progression sequence for component %d coefficient %d")
|
||||||
|
JMESSAGE(JWRN_EXTRANEOUS_DATA,
|
||||||
|
"Corrupt JPEG data: %u extraneous bytes before marker 0x%02x")
|
||||||
|
JMESSAGE(JWRN_HIT_MARKER, "Corrupt JPEG data: premature end of data segment")
|
||||||
|
JMESSAGE(JWRN_HUFF_BAD_CODE, "Corrupt JPEG data: bad Huffman code")
|
||||||
|
JMESSAGE(JWRN_JFIF_MAJOR, "Warning: unknown JFIF revision number %d.%02d")
|
||||||
|
JMESSAGE(JWRN_JPEG_EOF, "Premature end of JPEG file")
|
||||||
|
JMESSAGE(JWRN_MUST_RESYNC,
|
||||||
|
"Corrupt JPEG data: found marker 0x%02x instead of RST%d")
|
||||||
|
JMESSAGE(JWRN_NOT_SEQUENTIAL, "Invalid SOS parameters for sequential JPEG")
|
||||||
|
JMESSAGE(JWRN_TOO_MUCH_DATA, "Application transferred too many scanlines")
|
||||||
|
|
||||||
|
#ifdef JMAKE_ENUM_LIST
|
||||||
|
|
||||||
|
JMSG_LASTMSGCODE
|
||||||
|
} J_MESSAGE_CODE;
|
||||||
|
|
||||||
|
#undef JMAKE_ENUM_LIST
|
||||||
|
#endif /* JMAKE_ENUM_LIST */
|
||||||
|
|
||||||
|
/* Zap JMESSAGE macro so that future re-inclusions do nothing by default */
|
||||||
|
#undef JMESSAGE
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef JERROR_H
|
||||||
|
#define JERROR_H
|
||||||
|
|
||||||
|
/* Macros to simplify using the error and trace message stuff */
|
||||||
|
/* The first parameter is either type of cinfo pointer */
|
||||||
|
|
||||||
|
/* Fatal errors (print message and exit) */
|
||||||
|
#define ERREXIT(cinfo,code) \
|
||||||
|
((cinfo)->err->msg_code = (code), \
|
||||||
|
(*(cinfo)->err->error_exit) ((j_common_ptr) (cinfo)))
|
||||||
|
#define ERREXIT1(cinfo,code,p1) \
|
||||||
|
((cinfo)->err->msg_code = (code), \
|
||||||
|
(cinfo)->err->msg_parm.i[0] = (p1), \
|
||||||
|
(*(cinfo)->err->error_exit) ((j_common_ptr) (cinfo)))
|
||||||
|
#define ERREXIT2(cinfo,code,p1,p2) \
|
||||||
|
((cinfo)->err->msg_code = (code), \
|
||||||
|
(cinfo)->err->msg_parm.i[0] = (p1), \
|
||||||
|
(cinfo)->err->msg_parm.i[1] = (p2), \
|
||||||
|
(*(cinfo)->err->error_exit) ((j_common_ptr) (cinfo)))
|
||||||
|
#define ERREXIT3(cinfo,code,p1,p2,p3) \
|
||||||
|
((cinfo)->err->msg_code = (code), \
|
||||||
|
(cinfo)->err->msg_parm.i[0] = (p1), \
|
||||||
|
(cinfo)->err->msg_parm.i[1] = (p2), \
|
||||||
|
(cinfo)->err->msg_parm.i[2] = (p3), \
|
||||||
|
(*(cinfo)->err->error_exit) ((j_common_ptr) (cinfo)))
|
||||||
|
#define ERREXIT4(cinfo,code,p1,p2,p3,p4) \
|
||||||
|
((cinfo)->err->msg_code = (code), \
|
||||||
|
(cinfo)->err->msg_parm.i[0] = (p1), \
|
||||||
|
(cinfo)->err->msg_parm.i[1] = (p2), \
|
||||||
|
(cinfo)->err->msg_parm.i[2] = (p3), \
|
||||||
|
(cinfo)->err->msg_parm.i[3] = (p4), \
|
||||||
|
(*(cinfo)->err->error_exit) ((j_common_ptr) (cinfo)))
|
||||||
|
#define ERREXIT6(cinfo,code,p1,p2,p3,p4,p5,p6) \
|
||||||
|
((cinfo)->err->msg_code = (code), \
|
||||||
|
(cinfo)->err->msg_parm.i[0] = (p1), \
|
||||||
|
(cinfo)->err->msg_parm.i[1] = (p2), \
|
||||||
|
(cinfo)->err->msg_parm.i[2] = (p3), \
|
||||||
|
(cinfo)->err->msg_parm.i[3] = (p4), \
|
||||||
|
(cinfo)->err->msg_parm.i[4] = (p5), \
|
||||||
|
(cinfo)->err->msg_parm.i[5] = (p6), \
|
||||||
|
(*(cinfo)->err->error_exit) ((j_common_ptr) (cinfo)))
|
||||||
|
#define ERREXITS(cinfo,code,str) \
|
||||||
|
((cinfo)->err->msg_code = (code), \
|
||||||
|
strncpy((cinfo)->err->msg_parm.s, (str), JMSG_STR_PARM_MAX), \
|
||||||
|
(*(cinfo)->err->error_exit) ((j_common_ptr) (cinfo)))
|
||||||
|
|
||||||
|
#define MAKESTMT(stuff) do { stuff } while (0)
|
||||||
|
|
||||||
|
/* Nonfatal errors (we can keep going, but the data is probably corrupt) */
|
||||||
|
#define WARNMS(cinfo,code) \
|
||||||
|
((cinfo)->err->msg_code = (code), \
|
||||||
|
(*(cinfo)->err->emit_message) ((j_common_ptr) (cinfo), -1))
|
||||||
|
#define WARNMS1(cinfo,code,p1) \
|
||||||
|
((cinfo)->err->msg_code = (code), \
|
||||||
|
(cinfo)->err->msg_parm.i[0] = (p1), \
|
||||||
|
(*(cinfo)->err->emit_message) ((j_common_ptr) (cinfo), -1))
|
||||||
|
#define WARNMS2(cinfo,code,p1,p2) \
|
||||||
|
((cinfo)->err->msg_code = (code), \
|
||||||
|
(cinfo)->err->msg_parm.i[0] = (p1), \
|
||||||
|
(cinfo)->err->msg_parm.i[1] = (p2), \
|
||||||
|
(*(cinfo)->err->emit_message) ((j_common_ptr) (cinfo), -1))
|
||||||
|
|
||||||
|
/* Informational/debugging messages */
|
||||||
|
#define TRACEMS(cinfo,lvl,code) \
|
||||||
|
((cinfo)->err->msg_code = (code), \
|
||||||
|
(*(cinfo)->err->emit_message) ((j_common_ptr) (cinfo), (lvl)))
|
||||||
|
#define TRACEMS1(cinfo,lvl,code,p1) \
|
||||||
|
((cinfo)->err->msg_code = (code), \
|
||||||
|
(cinfo)->err->msg_parm.i[0] = (p1), \
|
||||||
|
(*(cinfo)->err->emit_message) ((j_common_ptr) (cinfo), (lvl)))
|
||||||
|
#define TRACEMS2(cinfo,lvl,code,p1,p2) \
|
||||||
|
((cinfo)->err->msg_code = (code), \
|
||||||
|
(cinfo)->err->msg_parm.i[0] = (p1), \
|
||||||
|
(cinfo)->err->msg_parm.i[1] = (p2), \
|
||||||
|
(*(cinfo)->err->emit_message) ((j_common_ptr) (cinfo), (lvl)))
|
||||||
|
#define TRACEMS3(cinfo,lvl,code,p1,p2,p3) \
|
||||||
|
MAKESTMT(int * _mp = (cinfo)->err->msg_parm.i; \
|
||||||
|
_mp[0] = (p1); _mp[1] = (p2); _mp[2] = (p3); \
|
||||||
|
(cinfo)->err->msg_code = (code); \
|
||||||
|
(*(cinfo)->err->emit_message) ((j_common_ptr) (cinfo), (lvl)); )
|
||||||
|
#define TRACEMS4(cinfo,lvl,code,p1,p2,p3,p4) \
|
||||||
|
MAKESTMT(int * _mp = (cinfo)->err->msg_parm.i; \
|
||||||
|
_mp[0] = (p1); _mp[1] = (p2); _mp[2] = (p3); _mp[3] = (p4); \
|
||||||
|
(cinfo)->err->msg_code = (code); \
|
||||||
|
(*(cinfo)->err->emit_message) ((j_common_ptr) (cinfo), (lvl)); )
|
||||||
|
#define TRACEMS5(cinfo,lvl,code,p1,p2,p3,p4,p5) \
|
||||||
|
MAKESTMT(int * _mp = (cinfo)->err->msg_parm.i; \
|
||||||
|
_mp[0] = (p1); _mp[1] = (p2); _mp[2] = (p3); _mp[3] = (p4); \
|
||||||
|
_mp[4] = (p5); \
|
||||||
|
(cinfo)->err->msg_code = (code); \
|
||||||
|
(*(cinfo)->err->emit_message) ((j_common_ptr) (cinfo), (lvl)); )
|
||||||
|
#define TRACEMS8(cinfo,lvl,code,p1,p2,p3,p4,p5,p6,p7,p8) \
|
||||||
|
MAKESTMT(int * _mp = (cinfo)->err->msg_parm.i; \
|
||||||
|
_mp[0] = (p1); _mp[1] = (p2); _mp[2] = (p3); _mp[3] = (p4); \
|
||||||
|
_mp[4] = (p5); _mp[5] = (p6); _mp[6] = (p7); _mp[7] = (p8); \
|
||||||
|
(cinfo)->err->msg_code = (code); \
|
||||||
|
(*(cinfo)->err->emit_message) ((j_common_ptr) (cinfo), (lvl)); )
|
||||||
|
#define TRACEMSS(cinfo,lvl,code,str) \
|
||||||
|
((cinfo)->err->msg_code = (code), \
|
||||||
|
strncpy((cinfo)->err->msg_parm.s, (str), JMSG_STR_PARM_MAX), \
|
||||||
|
(*(cinfo)->err->emit_message) ((j_common_ptr) (cinfo), (lvl)))
|
||||||
|
|
||||||
|
#endif /* JERROR_H */
|
371
i686-w64-mingw32/include/jmorecfg.h
Normal file
371
i686-w64-mingw32/include/jmorecfg.h
Normal file
|
@ -0,0 +1,371 @@
|
||||||
|
/*
|
||||||
|
* jmorecfg.h
|
||||||
|
*
|
||||||
|
* Copyright (C) 1991-1997, Thomas G. Lane.
|
||||||
|
* Modified 1997-2009 by Guido Vollbeding.
|
||||||
|
* This file is part of the Independent JPEG Group's software.
|
||||||
|
* For conditions of distribution and use, see the accompanying README file.
|
||||||
|
*
|
||||||
|
* This file contains additional configuration options that customize the
|
||||||
|
* JPEG software for special applications or support machine-dependent
|
||||||
|
* optimizations. Most users will not need to touch this file.
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Define BITS_IN_JSAMPLE as either
|
||||||
|
* 8 for 8-bit sample values (the usual setting)
|
||||||
|
* 12 for 12-bit sample values
|
||||||
|
* Only 8 and 12 are legal data precisions for lossy JPEG according to the
|
||||||
|
* JPEG standard, and the IJG code does not support anything else!
|
||||||
|
* We do not support run-time selection of data precision, sorry.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#define BITS_IN_JSAMPLE 8 /* use 8 or 12 */
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Maximum number of components (color channels) allowed in JPEG image.
|
||||||
|
* To meet the letter of the JPEG spec, set this to 255. However, darn
|
||||||
|
* few applications need more than 4 channels (maybe 5 for CMYK + alpha
|
||||||
|
* mask). We recommend 10 as a reasonable compromise; use 4 if you are
|
||||||
|
* really short on memory. (Each allowed component costs a hundred or so
|
||||||
|
* bytes of storage, whether actually used in an image or not.)
|
||||||
|
*/
|
||||||
|
|
||||||
|
#define MAX_COMPONENTS 10 /* maximum number of image components */
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Basic data types.
|
||||||
|
* You may need to change these if you have a machine with unusual data
|
||||||
|
* type sizes; for example, "char" not 8 bits, "short" not 16 bits,
|
||||||
|
* or "long" not 32 bits. We don't care whether "int" is 16 or 32 bits,
|
||||||
|
* but it had better be at least 16.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* Representation of a single sample (pixel element value).
|
||||||
|
* We frequently allocate large arrays of these, so it's important to keep
|
||||||
|
* them small. But if you have memory to burn and access to char or short
|
||||||
|
* arrays is very slow on your hardware, you might want to change these.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#if BITS_IN_JSAMPLE == 8
|
||||||
|
/* JSAMPLE should be the smallest type that will hold the values 0..255.
|
||||||
|
* You can use a signed char by having GETJSAMPLE mask it with 0xFF.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifdef HAVE_UNSIGNED_CHAR
|
||||||
|
|
||||||
|
typedef unsigned char JSAMPLE;
|
||||||
|
#define GETJSAMPLE(value) ((int) (value))
|
||||||
|
|
||||||
|
#else /* not HAVE_UNSIGNED_CHAR */
|
||||||
|
|
||||||
|
typedef char JSAMPLE;
|
||||||
|
#ifdef CHAR_IS_UNSIGNED
|
||||||
|
#define GETJSAMPLE(value) ((int) (value))
|
||||||
|
#else
|
||||||
|
#define GETJSAMPLE(value) ((int) (value) & 0xFF)
|
||||||
|
#endif /* CHAR_IS_UNSIGNED */
|
||||||
|
|
||||||
|
#endif /* HAVE_UNSIGNED_CHAR */
|
||||||
|
|
||||||
|
#define MAXJSAMPLE 255
|
||||||
|
#define CENTERJSAMPLE 128
|
||||||
|
|
||||||
|
#endif /* BITS_IN_JSAMPLE == 8 */
|
||||||
|
|
||||||
|
|
||||||
|
#if BITS_IN_JSAMPLE == 12
|
||||||
|
/* JSAMPLE should be the smallest type that will hold the values 0..4095.
|
||||||
|
* On nearly all machines "short" will do nicely.
|
||||||
|
*/
|
||||||
|
|
||||||
|
typedef short JSAMPLE;
|
||||||
|
#define GETJSAMPLE(value) ((int) (value))
|
||||||
|
|
||||||
|
#define MAXJSAMPLE 4095
|
||||||
|
#define CENTERJSAMPLE 2048
|
||||||
|
|
||||||
|
#endif /* BITS_IN_JSAMPLE == 12 */
|
||||||
|
|
||||||
|
|
||||||
|
/* Representation of a DCT frequency coefficient.
|
||||||
|
* This should be a signed value of at least 16 bits; "short" is usually OK.
|
||||||
|
* Again, we allocate large arrays of these, but you can change to int
|
||||||
|
* if you have memory to burn and "short" is really slow.
|
||||||
|
*/
|
||||||
|
|
||||||
|
typedef short JCOEF;
|
||||||
|
|
||||||
|
|
||||||
|
/* Compressed datastreams are represented as arrays of JOCTET.
|
||||||
|
* These must be EXACTLY 8 bits wide, at least once they are written to
|
||||||
|
* external storage. Note that when using the stdio data source/destination
|
||||||
|
* managers, this is also the data type passed to fread/fwrite.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifdef HAVE_UNSIGNED_CHAR
|
||||||
|
|
||||||
|
typedef unsigned char JOCTET;
|
||||||
|
#define GETJOCTET(value) (value)
|
||||||
|
|
||||||
|
#else /* not HAVE_UNSIGNED_CHAR */
|
||||||
|
|
||||||
|
typedef char JOCTET;
|
||||||
|
#ifdef CHAR_IS_UNSIGNED
|
||||||
|
#define GETJOCTET(value) (value)
|
||||||
|
#else
|
||||||
|
#define GETJOCTET(value) ((value) & 0xFF)
|
||||||
|
#endif /* CHAR_IS_UNSIGNED */
|
||||||
|
|
||||||
|
#endif /* HAVE_UNSIGNED_CHAR */
|
||||||
|
|
||||||
|
|
||||||
|
/* These typedefs are used for various table entries and so forth.
|
||||||
|
* They must be at least as wide as specified; but making them too big
|
||||||
|
* won't cost a huge amount of memory, so we don't provide special
|
||||||
|
* extraction code like we did for JSAMPLE. (In other words, these
|
||||||
|
* typedefs live at a different point on the speed/space tradeoff curve.)
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* UINT8 must hold at least the values 0..255. */
|
||||||
|
|
||||||
|
#ifdef HAVE_UNSIGNED_CHAR
|
||||||
|
typedef unsigned char UINT8;
|
||||||
|
#else /* not HAVE_UNSIGNED_CHAR */
|
||||||
|
#ifdef CHAR_IS_UNSIGNED
|
||||||
|
typedef char UINT8;
|
||||||
|
#else /* not CHAR_IS_UNSIGNED */
|
||||||
|
typedef short UINT8;
|
||||||
|
#endif /* CHAR_IS_UNSIGNED */
|
||||||
|
#endif /* HAVE_UNSIGNED_CHAR */
|
||||||
|
|
||||||
|
/* UINT16 must hold at least the values 0..65535. */
|
||||||
|
|
||||||
|
#ifdef HAVE_UNSIGNED_SHORT
|
||||||
|
typedef unsigned short UINT16;
|
||||||
|
#else /* not HAVE_UNSIGNED_SHORT */
|
||||||
|
typedef unsigned int UINT16;
|
||||||
|
#endif /* HAVE_UNSIGNED_SHORT */
|
||||||
|
|
||||||
|
/* INT16 must hold at least the values -32768..32767. */
|
||||||
|
|
||||||
|
#ifndef XMD_H /* X11/xmd.h correctly defines INT16 */
|
||||||
|
typedef short INT16;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* INT32 must hold at least signed 32-bit values. */
|
||||||
|
|
||||||
|
#ifndef XMD_H /* X11/xmd.h correctly defines INT32 */
|
||||||
|
#ifndef _BASETSD_H_ /* Microsoft defines it in basetsd.h */
|
||||||
|
#ifndef _BASETSD_H /* MinGW is slightly different */
|
||||||
|
#ifndef QGLOBAL_H /* Qt defines it in qglobal.h */
|
||||||
|
typedef long INT32;
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* Datatype used for image dimensions. The JPEG standard only supports
|
||||||
|
* images up to 64K*64K due to 16-bit fields in SOF markers. Therefore
|
||||||
|
* "unsigned int" is sufficient on all machines. However, if you need to
|
||||||
|
* handle larger images and you don't mind deviating from the spec, you
|
||||||
|
* can change this datatype.
|
||||||
|
*/
|
||||||
|
|
||||||
|
typedef unsigned int JDIMENSION;
|
||||||
|
|
||||||
|
#define JPEG_MAX_DIMENSION 65500L /* a tad under 64K to prevent overflows */
|
||||||
|
|
||||||
|
|
||||||
|
/* These macros are used in all function definitions and extern declarations.
|
||||||
|
* You could modify them if you need to change function linkage conventions;
|
||||||
|
* in particular, you'll need to do that to make the library a Windows DLL.
|
||||||
|
* Another application is to make all functions global for use with debuggers
|
||||||
|
* or code profilers that require it.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* a function called through method pointers: */
|
||||||
|
#define METHODDEF(type) static type
|
||||||
|
/* a function used only in its module: */
|
||||||
|
#define LOCAL(type) static type
|
||||||
|
/* a function referenced thru EXTERNs: */
|
||||||
|
#define GLOBAL(type) type
|
||||||
|
/* a reference to a GLOBAL function: */
|
||||||
|
#define EXTERN(type) extern type
|
||||||
|
|
||||||
|
|
||||||
|
/* This macro is used to declare a "method", that is, a function pointer.
|
||||||
|
* We want to supply prototype parameters if the compiler can cope.
|
||||||
|
* Note that the arglist parameter must be parenthesized!
|
||||||
|
* Again, you can customize this if you need special linkage keywords.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifdef HAVE_PROTOTYPES
|
||||||
|
#define JMETHOD(type,methodname,arglist) type (*methodname) arglist
|
||||||
|
#else
|
||||||
|
#define JMETHOD(type,methodname,arglist) type (*methodname) ()
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
/* Here is the pseudo-keyword for declaring pointers that must be "far"
|
||||||
|
* on 80x86 machines. Most of the specialized coding for 80x86 is handled
|
||||||
|
* by just saying "FAR *" where such a pointer is needed. In a few places
|
||||||
|
* explicit coding is needed; see uses of the NEED_FAR_POINTERS symbol.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef FAR
|
||||||
|
#ifdef NEED_FAR_POINTERS
|
||||||
|
#define FAR far
|
||||||
|
#else
|
||||||
|
#define FAR
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* On a few systems, type boolean and/or its values FALSE, TRUE may appear
|
||||||
|
* in standard header files. Or you may have conflicts with application-
|
||||||
|
* specific header files that you want to include together with these files.
|
||||||
|
* Defining HAVE_BOOLEAN before including jpeglib.h should make it work.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef HAVE_BOOLEAN
|
||||||
|
typedef int boolean;
|
||||||
|
#endif
|
||||||
|
#ifndef FALSE /* in case these macros already exist */
|
||||||
|
#define FALSE 0 /* values of boolean */
|
||||||
|
#endif
|
||||||
|
#ifndef TRUE
|
||||||
|
#define TRUE 1
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* The remaining options affect code selection within the JPEG library,
|
||||||
|
* but they don't need to be visible to most applications using the library.
|
||||||
|
* To minimize application namespace pollution, the symbols won't be
|
||||||
|
* defined unless JPEG_INTERNALS or JPEG_INTERNAL_OPTIONS has been defined.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifdef JPEG_INTERNALS
|
||||||
|
#define JPEG_INTERNAL_OPTIONS
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef JPEG_INTERNAL_OPTIONS
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* These defines indicate whether to include various optional functions.
|
||||||
|
* Undefining some of these symbols will produce a smaller but less capable
|
||||||
|
* library. Note that you can leave certain source files out of the
|
||||||
|
* compilation/linking process if you've #undef'd the corresponding symbols.
|
||||||
|
* (You may HAVE to do that if your compiler doesn't like null source files.)
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* Capability options common to encoder and decoder: */
|
||||||
|
|
||||||
|
#define DCT_ISLOW_SUPPORTED /* slow but accurate integer algorithm */
|
||||||
|
#define DCT_IFAST_SUPPORTED /* faster, less accurate integer method */
|
||||||
|
#define DCT_FLOAT_SUPPORTED /* floating-point: accurate, fast on fast HW */
|
||||||
|
|
||||||
|
/* Encoder capability options: */
|
||||||
|
|
||||||
|
#define C_ARITH_CODING_SUPPORTED /* Arithmetic coding back end? */
|
||||||
|
#define C_MULTISCAN_FILES_SUPPORTED /* Multiple-scan JPEG files? */
|
||||||
|
#define C_PROGRESSIVE_SUPPORTED /* Progressive JPEG? (Requires MULTISCAN)*/
|
||||||
|
#define DCT_SCALING_SUPPORTED /* Input rescaling via DCT? (Requires DCT_ISLOW)*/
|
||||||
|
#define ENTROPY_OPT_SUPPORTED /* Optimization of entropy coding parms? */
|
||||||
|
/* Note: if you selected 12-bit data precision, it is dangerous to turn off
|
||||||
|
* ENTROPY_OPT_SUPPORTED. The standard Huffman tables are only good for 8-bit
|
||||||
|
* precision, so jchuff.c normally uses entropy optimization to compute
|
||||||
|
* usable tables for higher precision. If you don't want to do optimization,
|
||||||
|
* you'll have to supply different default Huffman tables.
|
||||||
|
* The exact same statements apply for progressive JPEG: the default tables
|
||||||
|
* don't work for progressive mode. (This may get fixed, however.)
|
||||||
|
*/
|
||||||
|
#define INPUT_SMOOTHING_SUPPORTED /* Input image smoothing option? */
|
||||||
|
|
||||||
|
/* Decoder capability options: */
|
||||||
|
|
||||||
|
#define D_ARITH_CODING_SUPPORTED /* Arithmetic coding back end? */
|
||||||
|
#define D_MULTISCAN_FILES_SUPPORTED /* Multiple-scan JPEG files? */
|
||||||
|
#define D_PROGRESSIVE_SUPPORTED /* Progressive JPEG? (Requires MULTISCAN)*/
|
||||||
|
#define IDCT_SCALING_SUPPORTED /* Output rescaling via IDCT? */
|
||||||
|
#define SAVE_MARKERS_SUPPORTED /* jpeg_save_markers() needed? */
|
||||||
|
#define BLOCK_SMOOTHING_SUPPORTED /* Block smoothing? (Progressive only) */
|
||||||
|
#undef UPSAMPLE_SCALING_SUPPORTED /* Output rescaling at upsample stage? */
|
||||||
|
#define UPSAMPLE_MERGING_SUPPORTED /* Fast path for sloppy upsampling? */
|
||||||
|
#define QUANT_1PASS_SUPPORTED /* 1-pass color quantization? */
|
||||||
|
#define QUANT_2PASS_SUPPORTED /* 2-pass color quantization? */
|
||||||
|
|
||||||
|
/* more capability options later, no doubt */
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Ordering of RGB data in scanlines passed to or from the application.
|
||||||
|
* If your application wants to deal with data in the order B,G,R, just
|
||||||
|
* change these macros. You can also deal with formats such as R,G,B,X
|
||||||
|
* (one extra byte per pixel) by changing RGB_PIXELSIZE. Note that changing
|
||||||
|
* the offsets will also change the order in which colormap data is organized.
|
||||||
|
* RESTRICTIONS:
|
||||||
|
* 1. The sample applications cjpeg,djpeg do NOT support modified RGB formats.
|
||||||
|
* 2. These macros only affect RGB<=>YCbCr color conversion, so they are not
|
||||||
|
* useful if you are using JPEG color spaces other than YCbCr or grayscale.
|
||||||
|
* 3. The color quantizer modules will not behave desirably if RGB_PIXELSIZE
|
||||||
|
* is not 3 (they don't understand about dummy color components!). So you
|
||||||
|
* can't use color quantization if you change that value.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#define RGB_RED 0 /* Offset of Red in an RGB scanline element */
|
||||||
|
#define RGB_GREEN 1 /* Offset of Green */
|
||||||
|
#define RGB_BLUE 2 /* Offset of Blue */
|
||||||
|
#define RGB_PIXELSIZE 3 /* JSAMPLEs per RGB scanline element */
|
||||||
|
|
||||||
|
|
||||||
|
/* Definitions for speed-related optimizations. */
|
||||||
|
|
||||||
|
|
||||||
|
/* If your compiler supports inline functions, define INLINE
|
||||||
|
* as the inline keyword; otherwise define it as empty.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef INLINE
|
||||||
|
#ifdef __GNUC__ /* for instance, GNU C knows about inline */
|
||||||
|
#define INLINE __inline__
|
||||||
|
#endif
|
||||||
|
#ifndef INLINE
|
||||||
|
#define INLINE /* default is to define it as empty */
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
/* On some machines (notably 68000 series) "int" is 32 bits, but multiplying
|
||||||
|
* two 16-bit shorts is faster than multiplying two ints. Define MULTIPLIER
|
||||||
|
* as short on such a machine. MULTIPLIER must be at least 16 bits wide.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef MULTIPLIER
|
||||||
|
#define MULTIPLIER int /* type for fastest integer multiply */
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
/* FAST_FLOAT should be either float or double, whichever is done faster
|
||||||
|
* by your compiler. (Note that this type is only used in the floating point
|
||||||
|
* DCT routines, so it only matters if you've defined DCT_FLOAT_SUPPORTED.)
|
||||||
|
* Typically, float is faster in ANSI C compilers, while double is faster in
|
||||||
|
* pre-ANSI compilers (because they insist on converting to double anyway).
|
||||||
|
* The code below therefore chooses float if we have ANSI-style prototypes.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef FAST_FLOAT
|
||||||
|
#ifdef HAVE_PROTOTYPES
|
||||||
|
#define FAST_FLOAT float
|
||||||
|
#else
|
||||||
|
#define FAST_FLOAT double
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* JPEG_INTERNAL_OPTIONS */
|
1160
i686-w64-mingw32/include/jpeglib.h
Normal file
1160
i686-w64-mingw32/include/jpeglib.h
Normal file
File diff suppressed because it is too large
Load diff
BIN
i686-w64-mingw32/lib/libjpeg.a
Normal file
BIN
i686-w64-mingw32/lib/libjpeg.a
Normal file
Binary file not shown.
BIN
i686-w64-mingw32/lib/libjpeg.dll.a
Executable file
BIN
i686-w64-mingw32/lib/libjpeg.dll.a
Executable file
Binary file not shown.
41
i686-w64-mingw32/lib/libjpeg.la
Executable file
41
i686-w64-mingw32/lib/libjpeg.la
Executable file
|
@ -0,0 +1,41 @@
|
||||||
|
# libjpeg.la - a libtool library file
|
||||||
|
# Generated by libtool (GNU libtool) 2.4
|
||||||
|
#
|
||||||
|
# Please DO NOT delete this file!
|
||||||
|
# It is necessary for linking the library.
|
||||||
|
|
||||||
|
# The name that we can dlopen(3).
|
||||||
|
dlname='../bin/libjpeg-8.dll'
|
||||||
|
|
||||||
|
# Names of this library.
|
||||||
|
library_names='libjpeg.dll.a'
|
||||||
|
|
||||||
|
# The name of the static archive.
|
||||||
|
old_library='libjpeg.a'
|
||||||
|
|
||||||
|
# Linker flags that can not go in dependency_libs.
|
||||||
|
inherited_linker_flags=''
|
||||||
|
|
||||||
|
# Libraries that this one depends upon.
|
||||||
|
dependency_libs=''
|
||||||
|
|
||||||
|
# Names of additional weak libraries provided by this library
|
||||||
|
weak_library_names=''
|
||||||
|
|
||||||
|
# Version information for libjpeg.
|
||||||
|
current=11
|
||||||
|
age=3
|
||||||
|
revision=0
|
||||||
|
|
||||||
|
# Is this an already installed library?
|
||||||
|
installed=yes
|
||||||
|
|
||||||
|
# Should we warn about portability when linking against -modules?
|
||||||
|
shouldnotlink=no
|
||||||
|
|
||||||
|
# Files to dlopen/dlpreopen
|
||||||
|
dlopen=''
|
||||||
|
dlpreopen=''
|
||||||
|
|
||||||
|
# Directory that this library needs to be installed in:
|
||||||
|
libdir='/home/andre/devel/games/doom3-libs/i686-w64-mingw32/lib'
|
339
i686-w64-mingw32/share/man/man1/cjpeg.1
Normal file
339
i686-w64-mingw32/share/man/man1/cjpeg.1
Normal file
|
@ -0,0 +1,339 @@
|
||||||
|
.TH CJPEG 1 "14 November 2010"
|
||||||
|
.SH NAME
|
||||||
|
cjpeg \- compress an image file to a JPEG file
|
||||||
|
.SH SYNOPSIS
|
||||||
|
.B cjpeg
|
||||||
|
[
|
||||||
|
.I options
|
||||||
|
]
|
||||||
|
[
|
||||||
|
.I filename
|
||||||
|
]
|
||||||
|
.LP
|
||||||
|
.SH DESCRIPTION
|
||||||
|
.LP
|
||||||
|
.B cjpeg
|
||||||
|
compresses the named image file, or the standard input if no file is
|
||||||
|
named, and produces a JPEG/JFIF file on the standard output.
|
||||||
|
The currently supported input file formats are: PPM (PBMPLUS color
|
||||||
|
format), PGM (PBMPLUS gray-scale format), BMP, Targa, and RLE (Utah Raster
|
||||||
|
Toolkit format). (RLE is supported only if the URT library is available.)
|
||||||
|
.SH OPTIONS
|
||||||
|
All switch names may be abbreviated; for example,
|
||||||
|
.B \-grayscale
|
||||||
|
may be written
|
||||||
|
.B \-gray
|
||||||
|
or
|
||||||
|
.BR \-gr .
|
||||||
|
Most of the "basic" switches can be abbreviated to as little as one letter.
|
||||||
|
Upper and lower case are equivalent (thus
|
||||||
|
.B \-BMP
|
||||||
|
is the same as
|
||||||
|
.BR \-bmp ).
|
||||||
|
British spellings are also accepted (e.g.,
|
||||||
|
.BR \-greyscale ),
|
||||||
|
though for brevity these are not mentioned below.
|
||||||
|
.PP
|
||||||
|
The basic switches are:
|
||||||
|
.TP
|
||||||
|
.BI \-quality " N[,...]"
|
||||||
|
Scale quantization tables to adjust image quality. Quality is 0 (worst) to
|
||||||
|
100 (best); default is 75. (See below for more info.)
|
||||||
|
.TP
|
||||||
|
.B \-grayscale
|
||||||
|
Create monochrome JPEG file from color input. Be sure to use this switch when
|
||||||
|
compressing a grayscale BMP file, because
|
||||||
|
.B cjpeg
|
||||||
|
isn't bright enough to notice whether a BMP file uses only shades of gray.
|
||||||
|
By saying
|
||||||
|
.BR \-grayscale ,
|
||||||
|
you'll get a smaller JPEG file that takes less time to process.
|
||||||
|
.TP
|
||||||
|
.B \-optimize
|
||||||
|
Perform optimization of entropy encoding parameters. Without this, default
|
||||||
|
encoding parameters are used.
|
||||||
|
.B \-optimize
|
||||||
|
usually makes the JPEG file a little smaller, but
|
||||||
|
.B cjpeg
|
||||||
|
runs somewhat slower and needs much more memory. Image quality and speed of
|
||||||
|
decompression are unaffected by
|
||||||
|
.BR \-optimize .
|
||||||
|
.TP
|
||||||
|
.B \-progressive
|
||||||
|
Create progressive JPEG file (see below).
|
||||||
|
.TP
|
||||||
|
.BI \-scale " M/N"
|
||||||
|
Scale the output image by a factor M/N. Currently supported scale factors are
|
||||||
|
M/N with all N from 1 to 16, where M is the destination DCT size, which is 8
|
||||||
|
by default (see
|
||||||
|
.BI \-block " N"
|
||||||
|
switch below).
|
||||||
|
.TP
|
||||||
|
.B \-targa
|
||||||
|
Input file is Targa format. Targa files that contain an "identification"
|
||||||
|
field will not be automatically recognized by
|
||||||
|
.BR cjpeg ;
|
||||||
|
for such files you must specify
|
||||||
|
.B \-targa
|
||||||
|
to make
|
||||||
|
.B cjpeg
|
||||||
|
treat the input as Targa format.
|
||||||
|
For most Targa files, you won't need this switch.
|
||||||
|
.PP
|
||||||
|
The
|
||||||
|
.B \-quality
|
||||||
|
switch lets you trade off compressed file size against quality of the
|
||||||
|
reconstructed image: the higher the quality setting, the larger the JPEG file,
|
||||||
|
and the closer the output image will be to the original input. Normally you
|
||||||
|
want to use the lowest quality setting (smallest file) that decompresses into
|
||||||
|
something visually indistinguishable from the original image. For this
|
||||||
|
purpose the quality setting should be between 50 and 95; the default of 75 is
|
||||||
|
often about right. If you see defects at
|
||||||
|
.B \-quality
|
||||||
|
75, then go up 5 or 10 counts at a time until you are happy with the output
|
||||||
|
image. (The optimal setting will vary from one image to another.)
|
||||||
|
.PP
|
||||||
|
.B \-quality
|
||||||
|
100 will generate a quantization table of all 1's, minimizing loss in the
|
||||||
|
quantization step (but there is still information loss in subsampling, as well
|
||||||
|
as roundoff error). This setting is mainly of interest for experimental
|
||||||
|
purposes. Quality values above about 95 are
|
||||||
|
.B not
|
||||||
|
recommended for normal use; the compressed file size goes up dramatically for
|
||||||
|
hardly any gain in output image quality.
|
||||||
|
.PP
|
||||||
|
In the other direction, quality values below 50 will produce very small files
|
||||||
|
of low image quality. Settings around 5 to 10 might be useful in preparing an
|
||||||
|
index of a large image library, for example. Try
|
||||||
|
.B \-quality
|
||||||
|
2 (or so) for some amusing Cubist effects. (Note: quality
|
||||||
|
values below about 25 generate 2-byte quantization tables, which are
|
||||||
|
considered optional in the JPEG standard.
|
||||||
|
.B cjpeg
|
||||||
|
emits a warning message when you give such a quality value, because some
|
||||||
|
other JPEG programs may be unable to decode the resulting file. Use
|
||||||
|
.B \-baseline
|
||||||
|
if you need to ensure compatibility at low quality values.)
|
||||||
|
.PP
|
||||||
|
The
|
||||||
|
.B \-quality
|
||||||
|
option has been extended in IJG version 7 for support of separate quality
|
||||||
|
settings for luminance and chrominance (or in general, for every provided
|
||||||
|
quantization table slot). This feature is useful for high-quality
|
||||||
|
applications which cannot accept the damage of color data by coarse
|
||||||
|
subsampling settings. You can now easily reduce the color data amount more
|
||||||
|
smoothly with finer control without separate subsampling. The resulting file
|
||||||
|
is fully compliant with standard JPEG decoders.
|
||||||
|
Note that the
|
||||||
|
.B \-quality
|
||||||
|
ratings refer to the quantization table slots, and that the last value is
|
||||||
|
replicated if there are more q-table slots than parameters. The default
|
||||||
|
q-table slots are 0 for luminance and 1 for chrominance with default tables as
|
||||||
|
given in the JPEG standard. This is compatible with the old behaviour in case
|
||||||
|
that only one parameter is given, which is then used for both luminance and
|
||||||
|
chrominance (slots 0 and 1). More or custom quantization tables can be set
|
||||||
|
with
|
||||||
|
.B \-qtables
|
||||||
|
and assigned to components with
|
||||||
|
.B \-qslots
|
||||||
|
parameter (see the "wizard" switches below).
|
||||||
|
.B Caution:
|
||||||
|
You must explicitly add
|
||||||
|
.BI \-sample " 1x1"
|
||||||
|
for efficient separate color
|
||||||
|
quality selection, since the default value used by library is 2x2!
|
||||||
|
.PP
|
||||||
|
The
|
||||||
|
.B \-progressive
|
||||||
|
switch creates a "progressive JPEG" file. In this type of JPEG file, the data
|
||||||
|
is stored in multiple scans of increasing quality. If the file is being
|
||||||
|
transmitted over a slow communications link, the decoder can use the first
|
||||||
|
scan to display a low-quality image very quickly, and can then improve the
|
||||||
|
display with each subsequent scan. The final image is exactly equivalent to a
|
||||||
|
standard JPEG file of the same quality setting, and the total file size is
|
||||||
|
about the same --- often a little smaller.
|
||||||
|
.PP
|
||||||
|
Switches for advanced users:
|
||||||
|
.TP
|
||||||
|
.BI \-block " N"
|
||||||
|
Set DCT block size. All N from 1 to 16 are possible.
|
||||||
|
Default is 8 (baseline format).
|
||||||
|
Larger values produce higher compression,
|
||||||
|
smaller values produce higher quality
|
||||||
|
(exact DCT stage possible with 1 or 2; with the default quality of 75 and
|
||||||
|
default Luminance qtable the DCT+Quantization stage is lossless for N=1).
|
||||||
|
CAUTION: An implementation of the JPEG SmartScale extension is required for
|
||||||
|
this feature. SmartScale enabled JPEG is not yet widely implemented, so
|
||||||
|
many decoders will be unable to view a SmartScale extended JPEG file at all.
|
||||||
|
.TP
|
||||||
|
.B \-dct int
|
||||||
|
Use integer DCT method (default).
|
||||||
|
.TP
|
||||||
|
.B \-dct fast
|
||||||
|
Use fast integer DCT (less accurate).
|
||||||
|
.TP
|
||||||
|
.B \-dct float
|
||||||
|
Use floating-point DCT method.
|
||||||
|
The float method is very slightly more accurate than the int method, but is
|
||||||
|
much slower unless your machine has very fast floating-point hardware. Also
|
||||||
|
note that results of the floating-point method may vary slightly across
|
||||||
|
machines, while the integer methods should give the same results everywhere.
|
||||||
|
The fast integer method is much less accurate than the other two.
|
||||||
|
.TP
|
||||||
|
.B \-nosmooth
|
||||||
|
Don't use high-quality downsampling.
|
||||||
|
.TP
|
||||||
|
.BI \-restart " N"
|
||||||
|
Emit a JPEG restart marker every N MCU rows, or every N MCU blocks if "B" is
|
||||||
|
attached to the number.
|
||||||
|
.B \-restart 0
|
||||||
|
(the default) means no restart markers.
|
||||||
|
.TP
|
||||||
|
.BI \-smooth " N"
|
||||||
|
Smooth the input image to eliminate dithering noise. N, ranging from 1 to
|
||||||
|
100, indicates the strength of smoothing. 0 (the default) means no smoothing.
|
||||||
|
.TP
|
||||||
|
.BI \-maxmemory " N"
|
||||||
|
Set limit for amount of memory to use in processing large images. Value is
|
||||||
|
in thousands of bytes, or millions of bytes if "M" is attached to the
|
||||||
|
number. For example,
|
||||||
|
.B \-max 4m
|
||||||
|
selects 4000000 bytes. If more space is needed, temporary files will be used.
|
||||||
|
.TP
|
||||||
|
.BI \-outfile " name"
|
||||||
|
Send output image to the named file, not to standard output.
|
||||||
|
.TP
|
||||||
|
.B \-verbose
|
||||||
|
Enable debug printout. More
|
||||||
|
.BR \-v 's
|
||||||
|
give more output. Also, version information is printed at startup.
|
||||||
|
.TP
|
||||||
|
.B \-debug
|
||||||
|
Same as
|
||||||
|
.BR \-verbose .
|
||||||
|
.PP
|
||||||
|
The
|
||||||
|
.B \-restart
|
||||||
|
option inserts extra markers that allow a JPEG decoder to resynchronize after
|
||||||
|
a transmission error. Without restart markers, any damage to a compressed
|
||||||
|
file will usually ruin the image from the point of the error to the end of the
|
||||||
|
image; with restart markers, the damage is usually confined to the portion of
|
||||||
|
the image up to the next restart marker. Of course, the restart markers
|
||||||
|
occupy extra space. We recommend
|
||||||
|
.B \-restart 1
|
||||||
|
for images that will be transmitted across unreliable networks such as Usenet.
|
||||||
|
.PP
|
||||||
|
The
|
||||||
|
.B \-smooth
|
||||||
|
option filters the input to eliminate fine-scale noise. This is often useful
|
||||||
|
when converting dithered images to JPEG: a moderate smoothing factor of 10 to
|
||||||
|
50 gets rid of dithering patterns in the input file, resulting in a smaller
|
||||||
|
JPEG file and a better-looking image. Too large a smoothing factor will
|
||||||
|
visibly blur the image, however.
|
||||||
|
.PP
|
||||||
|
Switches for wizards:
|
||||||
|
.TP
|
||||||
|
.B \-arithmetic
|
||||||
|
Use arithmetic coding.
|
||||||
|
.B Caution:
|
||||||
|
arithmetic coded JPEG is not yet widely implemented, so many decoders will be
|
||||||
|
unable to view an arithmetic coded JPEG file at all.
|
||||||
|
.TP
|
||||||
|
.B \-baseline
|
||||||
|
Force baseline-compatible quantization tables to be generated. This clamps
|
||||||
|
quantization values to 8 bits even at low quality settings. (This switch is
|
||||||
|
poorly named, since it does not ensure that the output is actually baseline
|
||||||
|
JPEG. For example, you can use
|
||||||
|
.B \-baseline
|
||||||
|
and
|
||||||
|
.B \-progressive
|
||||||
|
together.)
|
||||||
|
.TP
|
||||||
|
.BI \-qtables " file"
|
||||||
|
Use the quantization tables given in the specified text file.
|
||||||
|
.TP
|
||||||
|
.BI \-qslots " N[,...]"
|
||||||
|
Select which quantization table to use for each color component.
|
||||||
|
.TP
|
||||||
|
.BI \-sample " HxV[,...]"
|
||||||
|
Set JPEG sampling factors for each color component.
|
||||||
|
.TP
|
||||||
|
.BI \-scans " file"
|
||||||
|
Use the scan script given in the specified text file.
|
||||||
|
.PP
|
||||||
|
The "wizard" switches are intended for experimentation with JPEG. If you
|
||||||
|
don't know what you are doing, \fBdon't use them\fR. These switches are
|
||||||
|
documented further in the file wizard.txt.
|
||||||
|
.SH EXAMPLES
|
||||||
|
.LP
|
||||||
|
This example compresses the PPM file foo.ppm with a quality factor of
|
||||||
|
60 and saves the output as foo.jpg:
|
||||||
|
.IP
|
||||||
|
.B cjpeg \-quality
|
||||||
|
.I 60 foo.ppm
|
||||||
|
.B >
|
||||||
|
.I foo.jpg
|
||||||
|
.SH HINTS
|
||||||
|
Color GIF files are not the ideal input for JPEG; JPEG is really intended for
|
||||||
|
compressing full-color (24-bit) images. In particular, don't try to convert
|
||||||
|
cartoons, line drawings, and other images that have only a few distinct
|
||||||
|
colors. GIF works great on these, JPEG does not. If you want to convert a
|
||||||
|
GIF to JPEG, you should experiment with
|
||||||
|
.BR cjpeg 's
|
||||||
|
.B \-quality
|
||||||
|
and
|
||||||
|
.B \-smooth
|
||||||
|
options to get a satisfactory conversion.
|
||||||
|
.B \-smooth 10
|
||||||
|
or so is often helpful.
|
||||||
|
.PP
|
||||||
|
Avoid running an image through a series of JPEG compression/decompression
|
||||||
|
cycles. Image quality loss will accumulate; after ten or so cycles the image
|
||||||
|
may be noticeably worse than it was after one cycle. It's best to use a
|
||||||
|
lossless format while manipulating an image, then convert to JPEG format when
|
||||||
|
you are ready to file the image away.
|
||||||
|
.PP
|
||||||
|
The
|
||||||
|
.B \-optimize
|
||||||
|
option to
|
||||||
|
.B cjpeg
|
||||||
|
is worth using when you are making a "final" version for posting or archiving.
|
||||||
|
It's also a win when you are using low quality settings to make very small
|
||||||
|
JPEG files; the percentage improvement is often a lot more than it is on
|
||||||
|
larger files. (At present,
|
||||||
|
.B \-optimize
|
||||||
|
mode is always selected when generating progressive JPEG files.)
|
||||||
|
.SH ENVIRONMENT
|
||||||
|
.TP
|
||||||
|
.B JPEGMEM
|
||||||
|
If this environment variable is set, its value is the default memory limit.
|
||||||
|
The value is specified as described for the
|
||||||
|
.B \-maxmemory
|
||||||
|
switch.
|
||||||
|
.B JPEGMEM
|
||||||
|
overrides the default value specified when the program was compiled, and
|
||||||
|
itself is overridden by an explicit
|
||||||
|
.BR \-maxmemory .
|
||||||
|
.SH SEE ALSO
|
||||||
|
.BR djpeg (1),
|
||||||
|
.BR jpegtran (1),
|
||||||
|
.BR rdjpgcom (1),
|
||||||
|
.BR wrjpgcom (1)
|
||||||
|
.br
|
||||||
|
.BR ppm (5),
|
||||||
|
.BR pgm (5)
|
||||||
|
.br
|
||||||
|
Wallace, Gregory K. "The JPEG Still Picture Compression Standard",
|
||||||
|
Communications of the ACM, April 1991 (vol. 34, no. 4), pp. 30-44.
|
||||||
|
.SH AUTHOR
|
||||||
|
Independent JPEG Group
|
||||||
|
.SH BUGS
|
||||||
|
GIF input files are no longer supported, to avoid the Unisys LZW patent.
|
||||||
|
(Conversion of GIF files to JPEG is usually a bad idea anyway.)
|
||||||
|
.PP
|
||||||
|
Not all variants of BMP and Targa file formats are supported.
|
||||||
|
.PP
|
||||||
|
The
|
||||||
|
.B \-targa
|
||||||
|
switch is not a bug, it's a feature. (It would be a bug if the Targa format
|
||||||
|
designers had not been clueless.)
|
252
i686-w64-mingw32/share/man/man1/djpeg.1
Normal file
252
i686-w64-mingw32/share/man/man1/djpeg.1
Normal file
|
@ -0,0 +1,252 @@
|
||||||
|
.TH DJPEG 1 "3 October 2009"
|
||||||
|
.SH NAME
|
||||||
|
djpeg \- decompress a JPEG file to an image file
|
||||||
|
.SH SYNOPSIS
|
||||||
|
.B djpeg
|
||||||
|
[
|
||||||
|
.I options
|
||||||
|
]
|
||||||
|
[
|
||||||
|
.I filename
|
||||||
|
]
|
||||||
|
.LP
|
||||||
|
.SH DESCRIPTION
|
||||||
|
.LP
|
||||||
|
.B djpeg
|
||||||
|
decompresses the named JPEG file, or the standard input if no file is named,
|
||||||
|
and produces an image file on the standard output. PBMPLUS (PPM/PGM), BMP,
|
||||||
|
GIF, Targa, or RLE (Utah Raster Toolkit) output format can be selected.
|
||||||
|
(RLE is supported only if the URT library is available.)
|
||||||
|
.SH OPTIONS
|
||||||
|
All switch names may be abbreviated; for example,
|
||||||
|
.B \-grayscale
|
||||||
|
may be written
|
||||||
|
.B \-gray
|
||||||
|
or
|
||||||
|
.BR \-gr .
|
||||||
|
Most of the "basic" switches can be abbreviated to as little as one letter.
|
||||||
|
Upper and lower case are equivalent (thus
|
||||||
|
.B \-BMP
|
||||||
|
is the same as
|
||||||
|
.BR \-bmp ).
|
||||||
|
British spellings are also accepted (e.g.,
|
||||||
|
.BR \-greyscale ),
|
||||||
|
though for brevity these are not mentioned below.
|
||||||
|
.PP
|
||||||
|
The basic switches are:
|
||||||
|
.TP
|
||||||
|
.BI \-colors " N"
|
||||||
|
Reduce image to at most N colors. This reduces the number of colors used in
|
||||||
|
the output image, so that it can be displayed on a colormapped display or
|
||||||
|
stored in a colormapped file format. For example, if you have an 8-bit
|
||||||
|
display, you'd need to reduce to 256 or fewer colors.
|
||||||
|
.TP
|
||||||
|
.BI \-quantize " N"
|
||||||
|
Same as
|
||||||
|
.BR \-colors .
|
||||||
|
.B \-colors
|
||||||
|
is the recommended name,
|
||||||
|
.B \-quantize
|
||||||
|
is provided only for backwards compatibility.
|
||||||
|
.TP
|
||||||
|
.B \-fast
|
||||||
|
Select recommended processing options for fast, low quality output. (The
|
||||||
|
default options are chosen for highest quality output.) Currently, this is
|
||||||
|
equivalent to \fB\-dct fast \-nosmooth \-onepass \-dither ordered\fR.
|
||||||
|
.TP
|
||||||
|
.B \-grayscale
|
||||||
|
Force gray-scale output even if JPEG file is color. Useful for viewing on
|
||||||
|
monochrome displays; also,
|
||||||
|
.B djpeg
|
||||||
|
runs noticeably faster in this mode.
|
||||||
|
.TP
|
||||||
|
.BI \-scale " M/N"
|
||||||
|
Scale the output image by a factor M/N. Currently supported scale factors are
|
||||||
|
M/N with all M from 1 to 16, where N is the source DCT size, which is 8 for
|
||||||
|
baseline JPEG. If the /N part is omitted, then M specifies the DCT scaled
|
||||||
|
size to be applied on the given input. For baseline JPEG this is equivalent
|
||||||
|
to M/8 scaling, since the source DCT size for baseline JPEG is 8.
|
||||||
|
Scaling is handy if the image is larger than your screen; also,
|
||||||
|
.B djpeg
|
||||||
|
runs much faster when scaling down the output.
|
||||||
|
.TP
|
||||||
|
.B \-bmp
|
||||||
|
Select BMP output format (Windows flavor). 8-bit colormapped format is
|
||||||
|
emitted if
|
||||||
|
.B \-colors
|
||||||
|
or
|
||||||
|
.B \-grayscale
|
||||||
|
is specified, or if the JPEG file is gray-scale; otherwise, 24-bit full-color
|
||||||
|
format is emitted.
|
||||||
|
.TP
|
||||||
|
.B \-gif
|
||||||
|
Select GIF output format. Since GIF does not support more than 256 colors,
|
||||||
|
.B \-colors 256
|
||||||
|
is assumed (unless you specify a smaller number of colors).
|
||||||
|
.TP
|
||||||
|
.B \-os2
|
||||||
|
Select BMP output format (OS/2 1.x flavor). 8-bit colormapped format is
|
||||||
|
emitted if
|
||||||
|
.B \-colors
|
||||||
|
or
|
||||||
|
.B \-grayscale
|
||||||
|
is specified, or if the JPEG file is gray-scale; otherwise, 24-bit full-color
|
||||||
|
format is emitted.
|
||||||
|
.TP
|
||||||
|
.B \-pnm
|
||||||
|
Select PBMPLUS (PPM/PGM) output format (this is the default format).
|
||||||
|
PGM is emitted if the JPEG file is gray-scale or if
|
||||||
|
.B \-grayscale
|
||||||
|
is specified; otherwise PPM is emitted.
|
||||||
|
.TP
|
||||||
|
.B \-rle
|
||||||
|
Select RLE output format. (Requires URT library.)
|
||||||
|
.TP
|
||||||
|
.B \-targa
|
||||||
|
Select Targa output format. Gray-scale format is emitted if the JPEG file is
|
||||||
|
gray-scale or if
|
||||||
|
.B \-grayscale
|
||||||
|
is specified; otherwise, colormapped format is emitted if
|
||||||
|
.B \-colors
|
||||||
|
is specified; otherwise, 24-bit full-color format is emitted.
|
||||||
|
.PP
|
||||||
|
Switches for advanced users:
|
||||||
|
.TP
|
||||||
|
.B \-dct int
|
||||||
|
Use integer DCT method (default).
|
||||||
|
.TP
|
||||||
|
.B \-dct fast
|
||||||
|
Use fast integer DCT (less accurate).
|
||||||
|
.TP
|
||||||
|
.B \-dct float
|
||||||
|
Use floating-point DCT method.
|
||||||
|
The float method is very slightly more accurate than the int method, but is
|
||||||
|
much slower unless your machine has very fast floating-point hardware. Also
|
||||||
|
note that results of the floating-point method may vary slightly across
|
||||||
|
machines, while the integer methods should give the same results everywhere.
|
||||||
|
The fast integer method is much less accurate than the other two.
|
||||||
|
.TP
|
||||||
|
.B \-dither fs
|
||||||
|
Use Floyd-Steinberg dithering in color quantization.
|
||||||
|
.TP
|
||||||
|
.B \-dither ordered
|
||||||
|
Use ordered dithering in color quantization.
|
||||||
|
.TP
|
||||||
|
.B \-dither none
|
||||||
|
Do not use dithering in color quantization.
|
||||||
|
By default, Floyd-Steinberg dithering is applied when quantizing colors; this
|
||||||
|
is slow but usually produces the best results. Ordered dither is a compromise
|
||||||
|
between speed and quality; no dithering is fast but usually looks awful. Note
|
||||||
|
that these switches have no effect unless color quantization is being done.
|
||||||
|
Ordered dither is only available in
|
||||||
|
.B \-onepass
|
||||||
|
mode.
|
||||||
|
.TP
|
||||||
|
.BI \-map " file"
|
||||||
|
Quantize to the colors used in the specified image file. This is useful for
|
||||||
|
producing multiple files with identical color maps, or for forcing a
|
||||||
|
predefined set of colors to be used. The
|
||||||
|
.I file
|
||||||
|
must be a GIF or PPM file. This option overrides
|
||||||
|
.B \-colors
|
||||||
|
and
|
||||||
|
.BR \-onepass .
|
||||||
|
.TP
|
||||||
|
.B \-nosmooth
|
||||||
|
Don't use high-quality upsampling.
|
||||||
|
.TP
|
||||||
|
.B \-onepass
|
||||||
|
Use one-pass instead of two-pass color quantization. The one-pass method is
|
||||||
|
faster and needs less memory, but it produces a lower-quality image.
|
||||||
|
.B \-onepass
|
||||||
|
is ignored unless you also say
|
||||||
|
.B \-colors
|
||||||
|
.IR N .
|
||||||
|
Also, the one-pass method is always used for gray-scale output (the two-pass
|
||||||
|
method is no improvement then).
|
||||||
|
.TP
|
||||||
|
.BI \-maxmemory " N"
|
||||||
|
Set limit for amount of memory to use in processing large images. Value is
|
||||||
|
in thousands of bytes, or millions of bytes if "M" is attached to the
|
||||||
|
number. For example,
|
||||||
|
.B \-max 4m
|
||||||
|
selects 4000000 bytes. If more space is needed, temporary files will be used.
|
||||||
|
.TP
|
||||||
|
.BI \-outfile " name"
|
||||||
|
Send output image to the named file, not to standard output.
|
||||||
|
.TP
|
||||||
|
.B \-verbose
|
||||||
|
Enable debug printout. More
|
||||||
|
.BR \-v 's
|
||||||
|
give more output. Also, version information is printed at startup.
|
||||||
|
.TP
|
||||||
|
.B \-debug
|
||||||
|
Same as
|
||||||
|
.BR \-verbose .
|
||||||
|
.SH EXAMPLES
|
||||||
|
.LP
|
||||||
|
This example decompresses the JPEG file foo.jpg, quantizes it to
|
||||||
|
256 colors, and saves the output in 8-bit BMP format in foo.bmp:
|
||||||
|
.IP
|
||||||
|
.B djpeg \-colors 256 \-bmp
|
||||||
|
.I foo.jpg
|
||||||
|
.B >
|
||||||
|
.I foo.bmp
|
||||||
|
.SH HINTS
|
||||||
|
To get a quick preview of an image, use the
|
||||||
|
.B \-grayscale
|
||||||
|
and/or
|
||||||
|
.B \-scale
|
||||||
|
switches.
|
||||||
|
.B \-grayscale \-scale 1/8
|
||||||
|
is the fastest case.
|
||||||
|
.PP
|
||||||
|
Several options are available that trade off image quality to gain speed.
|
||||||
|
.B \-fast
|
||||||
|
turns on the recommended settings.
|
||||||
|
.PP
|
||||||
|
.B \-dct fast
|
||||||
|
and/or
|
||||||
|
.B \-nosmooth
|
||||||
|
gain speed at a small sacrifice in quality.
|
||||||
|
When producing a color-quantized image,
|
||||||
|
.B \-onepass \-dither ordered
|
||||||
|
is fast but much lower quality than the default behavior.
|
||||||
|
.B \-dither none
|
||||||
|
may give acceptable results in two-pass mode, but is seldom tolerable in
|
||||||
|
one-pass mode.
|
||||||
|
.PP
|
||||||
|
If you are fortunate enough to have very fast floating point hardware,
|
||||||
|
\fB\-dct float\fR may be even faster than \fB\-dct fast\fR. But on most
|
||||||
|
machines \fB\-dct float\fR is slower than \fB\-dct int\fR; in this case it is
|
||||||
|
not worth using, because its theoretical accuracy advantage is too small to be
|
||||||
|
significant in practice.
|
||||||
|
.SH ENVIRONMENT
|
||||||
|
.TP
|
||||||
|
.B JPEGMEM
|
||||||
|
If this environment variable is set, its value is the default memory limit.
|
||||||
|
The value is specified as described for the
|
||||||
|
.B \-maxmemory
|
||||||
|
switch.
|
||||||
|
.B JPEGMEM
|
||||||
|
overrides the default value specified when the program was compiled, and
|
||||||
|
itself is overridden by an explicit
|
||||||
|
.BR \-maxmemory .
|
||||||
|
.SH SEE ALSO
|
||||||
|
.BR cjpeg (1),
|
||||||
|
.BR jpegtran (1),
|
||||||
|
.BR rdjpgcom (1),
|
||||||
|
.BR wrjpgcom (1)
|
||||||
|
.br
|
||||||
|
.BR ppm (5),
|
||||||
|
.BR pgm (5)
|
||||||
|
.br
|
||||||
|
Wallace, Gregory K. "The JPEG Still Picture Compression Standard",
|
||||||
|
Communications of the ACM, April 1991 (vol. 34, no. 4), pp. 30-44.
|
||||||
|
.SH AUTHOR
|
||||||
|
Independent JPEG Group
|
||||||
|
.SH BUGS
|
||||||
|
To avoid the Unisys LZW patent,
|
||||||
|
.B djpeg
|
||||||
|
produces uncompressed GIF files. These are larger than they should be, but
|
||||||
|
are readable by standard GIF decoders.
|
285
i686-w64-mingw32/share/man/man1/jpegtran.1
Normal file
285
i686-w64-mingw32/share/man/man1/jpegtran.1
Normal file
|
@ -0,0 +1,285 @@
|
||||||
|
.TH JPEGTRAN 1 "28 December 2009"
|
||||||
|
.SH NAME
|
||||||
|
jpegtran \- lossless transformation of JPEG files
|
||||||
|
.SH SYNOPSIS
|
||||||
|
.B jpegtran
|
||||||
|
[
|
||||||
|
.I options
|
||||||
|
]
|
||||||
|
[
|
||||||
|
.I filename
|
||||||
|
]
|
||||||
|
.LP
|
||||||
|
.SH DESCRIPTION
|
||||||
|
.LP
|
||||||
|
.B jpegtran
|
||||||
|
performs various useful transformations of JPEG files.
|
||||||
|
It can translate the coded representation from one variant of JPEG to another,
|
||||||
|
for example from baseline JPEG to progressive JPEG or vice versa. It can also
|
||||||
|
perform some rearrangements of the image data, for example turning an image
|
||||||
|
from landscape to portrait format by rotation.
|
||||||
|
.PP
|
||||||
|
.B jpegtran
|
||||||
|
works by rearranging the compressed data (DCT coefficients), without
|
||||||
|
ever fully decoding the image. Therefore, its transformations are lossless:
|
||||||
|
there is no image degradation at all, which would not be true if you used
|
||||||
|
.B djpeg
|
||||||
|
followed by
|
||||||
|
.B cjpeg
|
||||||
|
to accomplish the same conversion. But by the same token,
|
||||||
|
.B jpegtran
|
||||||
|
cannot perform lossy operations such as changing the image quality.
|
||||||
|
.PP
|
||||||
|
.B jpegtran
|
||||||
|
reads the named JPEG/JFIF file, or the standard input if no file is
|
||||||
|
named, and produces a JPEG/JFIF file on the standard output.
|
||||||
|
.SH OPTIONS
|
||||||
|
All switch names may be abbreviated; for example,
|
||||||
|
.B \-optimize
|
||||||
|
may be written
|
||||||
|
.B \-opt
|
||||||
|
or
|
||||||
|
.BR \-o .
|
||||||
|
Upper and lower case are equivalent.
|
||||||
|
British spellings are also accepted (e.g.,
|
||||||
|
.BR \-optimise ),
|
||||||
|
though for brevity these are not mentioned below.
|
||||||
|
.PP
|
||||||
|
To specify the coded JPEG representation used in the output file,
|
||||||
|
.B jpegtran
|
||||||
|
accepts a subset of the switches recognized by
|
||||||
|
.BR cjpeg :
|
||||||
|
.TP
|
||||||
|
.B \-optimize
|
||||||
|
Perform optimization of entropy encoding parameters.
|
||||||
|
.TP
|
||||||
|
.B \-progressive
|
||||||
|
Create progressive JPEG file.
|
||||||
|
.TP
|
||||||
|
.BI \-restart " N"
|
||||||
|
Emit a JPEG restart marker every N MCU rows, or every N MCU blocks if "B" is
|
||||||
|
attached to the number.
|
||||||
|
.TP
|
||||||
|
.B \-arithmetic
|
||||||
|
Use arithmetic coding.
|
||||||
|
.TP
|
||||||
|
.BI \-scans " file"
|
||||||
|
Use the scan script given in the specified text file.
|
||||||
|
.PP
|
||||||
|
See
|
||||||
|
.BR cjpeg (1)
|
||||||
|
for more details about these switches.
|
||||||
|
If you specify none of these switches, you get a plain baseline-JPEG output
|
||||||
|
file. The quality setting and so forth are determined by the input file.
|
||||||
|
.PP
|
||||||
|
The image can be losslessly transformed by giving one of these switches:
|
||||||
|
.TP
|
||||||
|
.B \-flip horizontal
|
||||||
|
Mirror image horizontally (left-right).
|
||||||
|
.TP
|
||||||
|
.B \-flip vertical
|
||||||
|
Mirror image vertically (top-bottom).
|
||||||
|
.TP
|
||||||
|
.B \-rotate 90
|
||||||
|
Rotate image 90 degrees clockwise.
|
||||||
|
.TP
|
||||||
|
.B \-rotate 180
|
||||||
|
Rotate image 180 degrees.
|
||||||
|
.TP
|
||||||
|
.B \-rotate 270
|
||||||
|
Rotate image 270 degrees clockwise (or 90 ccw).
|
||||||
|
.TP
|
||||||
|
.B \-transpose
|
||||||
|
Transpose image (across UL-to-LR axis).
|
||||||
|
.TP
|
||||||
|
.B \-transverse
|
||||||
|
Transverse transpose (across UR-to-LL axis).
|
||||||
|
.IP
|
||||||
|
The transpose transformation has no restrictions regarding image dimensions.
|
||||||
|
The other transformations operate rather oddly if the image dimensions are not
|
||||||
|
a multiple of the iMCU size (usually 8 or 16 pixels), because they can only
|
||||||
|
transform complete blocks of DCT coefficient data in the desired way.
|
||||||
|
.IP
|
||||||
|
.BR jpegtran 's
|
||||||
|
default behavior when transforming an odd-size image is designed
|
||||||
|
to preserve exact reversibility and mathematical consistency of the
|
||||||
|
transformation set. As stated, transpose is able to flip the entire image
|
||||||
|
area. Horizontal mirroring leaves any partial iMCU column at the right edge
|
||||||
|
untouched, but is able to flip all rows of the image. Similarly, vertical
|
||||||
|
mirroring leaves any partial iMCU row at the bottom edge untouched, but is
|
||||||
|
able to flip all columns. The other transforms can be built up as sequences
|
||||||
|
of transpose and flip operations; for consistency, their actions on edge
|
||||||
|
pixels are defined to be the same as the end result of the corresponding
|
||||||
|
transpose-and-flip sequence.
|
||||||
|
.IP
|
||||||
|
For practical use, you may prefer to discard any untransformable edge pixels
|
||||||
|
rather than having a strange-looking strip along the right and/or bottom edges
|
||||||
|
of a transformed image. To do this, add the
|
||||||
|
.B \-trim
|
||||||
|
switch:
|
||||||
|
.TP
|
||||||
|
.B \-trim
|
||||||
|
Drop non-transformable edge blocks.
|
||||||
|
.IP
|
||||||
|
Obviously, a transformation with
|
||||||
|
.B \-trim
|
||||||
|
is not reversible, so strictly speaking
|
||||||
|
.B jpegtran
|
||||||
|
with this switch is not lossless. Also, the expected mathematical
|
||||||
|
equivalences between the transformations no longer hold. For example,
|
||||||
|
.B \-rot 270 -trim
|
||||||
|
trims only the bottom edge, but
|
||||||
|
.B \-rot 90 -trim
|
||||||
|
followed by
|
||||||
|
.B \-rot 180 -trim
|
||||||
|
trims both edges.
|
||||||
|
.IP
|
||||||
|
If you are only interested in perfect transformation, add the
|
||||||
|
.B \-perfect
|
||||||
|
switch:
|
||||||
|
.TP
|
||||||
|
.B \-perfect
|
||||||
|
Fails with an error if the transformation is not perfect.
|
||||||
|
.IP
|
||||||
|
For example you may want to do
|
||||||
|
.IP
|
||||||
|
.B (jpegtran \-rot 90 -perfect
|
||||||
|
.I foo.jpg
|
||||||
|
.B || djpeg
|
||||||
|
.I foo.jpg
|
||||||
|
.B | pnmflip \-r90 | cjpeg)
|
||||||
|
.IP
|
||||||
|
to do a perfect rotation if available or an approximated one if not.
|
||||||
|
.PP
|
||||||
|
We also offer a lossless-crop option, which discards data outside a given
|
||||||
|
image region but losslessly preserves what is inside. Like the rotate and
|
||||||
|
flip transforms, lossless crop is restricted by the current JPEG format: the
|
||||||
|
upper left corner of the selected region must fall on an iMCU boundary. If
|
||||||
|
this does not hold for the given crop parameters, we silently move the upper
|
||||||
|
left corner up and/or left to make it so, simultaneously increasing the region
|
||||||
|
dimensions to keep the lower right crop corner unchanged. (Thus, the output
|
||||||
|
image covers at least the requested region, but may cover more.)
|
||||||
|
|
||||||
|
The image can be losslessly cropped by giving the switch:
|
||||||
|
.TP
|
||||||
|
.B \-crop WxH+X+Y
|
||||||
|
Crop to a rectangular subarea of width W, height H starting at point X,Y.
|
||||||
|
.PP
|
||||||
|
Other not-strictly-lossless transformation switches are:
|
||||||
|
.TP
|
||||||
|
.B \-grayscale
|
||||||
|
Force grayscale output.
|
||||||
|
.IP
|
||||||
|
This option discards the chrominance channels if the input image is YCbCr
|
||||||
|
(ie, a standard color JPEG), resulting in a grayscale JPEG file. The
|
||||||
|
luminance channel is preserved exactly, so this is a better method of reducing
|
||||||
|
to grayscale than decompression, conversion, and recompression. This switch
|
||||||
|
is particularly handy for fixing a monochrome picture that was mistakenly
|
||||||
|
encoded as a color JPEG. (In such a case, the space savings from getting rid
|
||||||
|
of the near-empty chroma channels won't be large; but the decoding time for
|
||||||
|
a grayscale JPEG is substantially less than that for a color JPEG.)
|
||||||
|
.TP
|
||||||
|
.BI \-scale " M/N"
|
||||||
|
Scale the output image by a factor M/N.
|
||||||
|
.IP
|
||||||
|
Currently supported scale factors are M/N with all M from 1 to 16, where N is
|
||||||
|
the source DCT size, which is 8 for baseline JPEG. If the /N part is omitted,
|
||||||
|
then M specifies the DCT scaled size to be applied on the given input. For
|
||||||
|
baseline JPEG this is equivalent to M/8 scaling, since the source DCT size
|
||||||
|
for baseline JPEG is 8.
|
||||||
|
.B Caution:
|
||||||
|
An implementation of the JPEG SmartScale extension is required for this
|
||||||
|
feature. SmartScale enabled JPEG is not yet widely implemented, so many
|
||||||
|
decoders will be unable to view a SmartScale extended JPEG file at all.
|
||||||
|
.PP
|
||||||
|
.B jpegtran
|
||||||
|
also recognizes these switches that control what to do with "extra" markers,
|
||||||
|
such as comment blocks:
|
||||||
|
.TP
|
||||||
|
.B \-copy none
|
||||||
|
Copy no extra markers from source file. This setting suppresses all
|
||||||
|
comments and other excess baggage present in the source file.
|
||||||
|
.TP
|
||||||
|
.B \-copy comments
|
||||||
|
Copy only comment markers. This setting copies comments from the source file,
|
||||||
|
but discards any other inessential (for image display) data.
|
||||||
|
.TP
|
||||||
|
.B \-copy all
|
||||||
|
Copy all extra markers. This setting preserves miscellaneous markers
|
||||||
|
found in the source file, such as JFIF thumbnails, Exif data, and Photoshop
|
||||||
|
settings. In some files these extra markers can be sizable.
|
||||||
|
.IP
|
||||||
|
The default behavior is
|
||||||
|
.BR "\-copy comments" .
|
||||||
|
(Note: in IJG releases v6 and v6a,
|
||||||
|
.B jpegtran
|
||||||
|
always did the equivalent of
|
||||||
|
.BR "\-copy none" .)
|
||||||
|
.PP
|
||||||
|
Additional switches recognized by jpegtran are:
|
||||||
|
.TP
|
||||||
|
.BI \-maxmemory " N"
|
||||||
|
Set limit for amount of memory to use in processing large images. Value is
|
||||||
|
in thousands of bytes, or millions of bytes if "M" is attached to the
|
||||||
|
number. For example,
|
||||||
|
.B \-max 4m
|
||||||
|
selects 4000000 bytes. If more space is needed, temporary files will be used.
|
||||||
|
.TP
|
||||||
|
.BI \-outfile " name"
|
||||||
|
Send output image to the named file, not to standard output.
|
||||||
|
.TP
|
||||||
|
.B \-verbose
|
||||||
|
Enable debug printout. More
|
||||||
|
.BR \-v 's
|
||||||
|
give more output. Also, version information is printed at startup.
|
||||||
|
.TP
|
||||||
|
.B \-debug
|
||||||
|
Same as
|
||||||
|
.BR \-verbose .
|
||||||
|
.SH EXAMPLES
|
||||||
|
.LP
|
||||||
|
This example converts a baseline JPEG file to progressive form:
|
||||||
|
.IP
|
||||||
|
.B jpegtran \-progressive
|
||||||
|
.I foo.jpg
|
||||||
|
.B >
|
||||||
|
.I fooprog.jpg
|
||||||
|
.PP
|
||||||
|
This example rotates an image 90 degrees clockwise, discarding any
|
||||||
|
unrotatable edge pixels:
|
||||||
|
.IP
|
||||||
|
.B jpegtran \-rot 90 -trim
|
||||||
|
.I foo.jpg
|
||||||
|
.B >
|
||||||
|
.I foo90.jpg
|
||||||
|
.SH ENVIRONMENT
|
||||||
|
.TP
|
||||||
|
.B JPEGMEM
|
||||||
|
If this environment variable is set, its value is the default memory limit.
|
||||||
|
The value is specified as described for the
|
||||||
|
.B \-maxmemory
|
||||||
|
switch.
|
||||||
|
.B JPEGMEM
|
||||||
|
overrides the default value specified when the program was compiled, and
|
||||||
|
itself is overridden by an explicit
|
||||||
|
.BR \-maxmemory .
|
||||||
|
.SH SEE ALSO
|
||||||
|
.BR cjpeg (1),
|
||||||
|
.BR djpeg (1),
|
||||||
|
.BR rdjpgcom (1),
|
||||||
|
.BR wrjpgcom (1)
|
||||||
|
.br
|
||||||
|
Wallace, Gregory K. "The JPEG Still Picture Compression Standard",
|
||||||
|
Communications of the ACM, April 1991 (vol. 34, no. 4), pp. 30-44.
|
||||||
|
.SH AUTHOR
|
||||||
|
Independent JPEG Group
|
||||||
|
.SH BUGS
|
||||||
|
The transform options can't transform odd-size images perfectly. Use
|
||||||
|
.B \-trim
|
||||||
|
or
|
||||||
|
.B \-perfect
|
||||||
|
if you don't like the results.
|
||||||
|
.PP
|
||||||
|
The entire image is read into memory and then written out again, even in
|
||||||
|
cases where this isn't really necessary. Expect swapping on large images,
|
||||||
|
especially when using the more complex transform options.
|
63
i686-w64-mingw32/share/man/man1/rdjpgcom.1
Normal file
63
i686-w64-mingw32/share/man/man1/rdjpgcom.1
Normal file
|
@ -0,0 +1,63 @@
|
||||||
|
.TH RDJPGCOM 1 "02 April 2009"
|
||||||
|
.SH NAME
|
||||||
|
rdjpgcom \- display text comments from a JPEG file
|
||||||
|
.SH SYNOPSIS
|
||||||
|
.B rdjpgcom
|
||||||
|
[
|
||||||
|
.B \-raw
|
||||||
|
]
|
||||||
|
[
|
||||||
|
.B \-verbose
|
||||||
|
]
|
||||||
|
[
|
||||||
|
.I filename
|
||||||
|
]
|
||||||
|
.LP
|
||||||
|
.SH DESCRIPTION
|
||||||
|
.LP
|
||||||
|
.B rdjpgcom
|
||||||
|
reads the named JPEG/JFIF file, or the standard input if no file is named,
|
||||||
|
and prints any text comments found in the file on the standard output.
|
||||||
|
.PP
|
||||||
|
The JPEG standard allows "comment" (COM) blocks to occur within a JPEG file.
|
||||||
|
Although the standard doesn't actually define what COM blocks are for, they
|
||||||
|
are widely used to hold user-supplied text strings. This lets you add
|
||||||
|
annotations, titles, index terms, etc to your JPEG files, and later retrieve
|
||||||
|
them as text. COM blocks do not interfere with the image stored in the JPEG
|
||||||
|
file. The maximum size of a COM block is 64K, but you can have as many of
|
||||||
|
them as you like in one JPEG file.
|
||||||
|
.SH OPTIONS
|
||||||
|
.TP
|
||||||
|
.B \-raw
|
||||||
|
Normally
|
||||||
|
.B rdjpgcom
|
||||||
|
escapes non-printable characters in comments, for security reasons.
|
||||||
|
This option avoids that.
|
||||||
|
.PP
|
||||||
|
.B \-verbose
|
||||||
|
Causes
|
||||||
|
.B rdjpgcom
|
||||||
|
to also display the JPEG image dimensions.
|
||||||
|
.PP
|
||||||
|
Switch names may be abbreviated, and are not case sensitive.
|
||||||
|
.SH HINTS
|
||||||
|
.B rdjpgcom
|
||||||
|
does not depend on the IJG JPEG library. Its source code is intended as an
|
||||||
|
illustration of the minimum amount of code required to parse a JPEG file
|
||||||
|
header correctly.
|
||||||
|
.PP
|
||||||
|
In
|
||||||
|
.B \-verbose
|
||||||
|
mode,
|
||||||
|
.B rdjpgcom
|
||||||
|
will also attempt to print the contents of any "APP12" markers as text.
|
||||||
|
Some digital cameras produce APP12 markers containing useful textual
|
||||||
|
information. If you like, you can modify the source code to print
|
||||||
|
other APPn marker types as well.
|
||||||
|
.SH SEE ALSO
|
||||||
|
.BR cjpeg (1),
|
||||||
|
.BR djpeg (1),
|
||||||
|
.BR jpegtran (1),
|
||||||
|
.BR wrjpgcom (1)
|
||||||
|
.SH AUTHOR
|
||||||
|
Independent JPEG Group
|
103
i686-w64-mingw32/share/man/man1/wrjpgcom.1
Normal file
103
i686-w64-mingw32/share/man/man1/wrjpgcom.1
Normal file
|
@ -0,0 +1,103 @@
|
||||||
|
.TH WRJPGCOM 1 "15 June 1995"
|
||||||
|
.SH NAME
|
||||||
|
wrjpgcom \- insert text comments into a JPEG file
|
||||||
|
.SH SYNOPSIS
|
||||||
|
.B wrjpgcom
|
||||||
|
[
|
||||||
|
.B \-replace
|
||||||
|
]
|
||||||
|
[
|
||||||
|
.BI \-comment " text"
|
||||||
|
]
|
||||||
|
[
|
||||||
|
.BI \-cfile " name"
|
||||||
|
]
|
||||||
|
[
|
||||||
|
.I filename
|
||||||
|
]
|
||||||
|
.LP
|
||||||
|
.SH DESCRIPTION
|
||||||
|
.LP
|
||||||
|
.B wrjpgcom
|
||||||
|
reads the named JPEG/JFIF file, or the standard input if no file is named,
|
||||||
|
and generates a new JPEG/JFIF file on standard output. A comment block is
|
||||||
|
added to the file.
|
||||||
|
.PP
|
||||||
|
The JPEG standard allows "comment" (COM) blocks to occur within a JPEG file.
|
||||||
|
Although the standard doesn't actually define what COM blocks are for, they
|
||||||
|
are widely used to hold user-supplied text strings. This lets you add
|
||||||
|
annotations, titles, index terms, etc to your JPEG files, and later retrieve
|
||||||
|
them as text. COM blocks do not interfere with the image stored in the JPEG
|
||||||
|
file. The maximum size of a COM block is 64K, but you can have as many of
|
||||||
|
them as you like in one JPEG file.
|
||||||
|
.PP
|
||||||
|
.B wrjpgcom
|
||||||
|
adds a COM block, containing text you provide, to a JPEG file.
|
||||||
|
Ordinarily, the COM block is added after any existing COM blocks; but you
|
||||||
|
can delete the old COM blocks if you wish.
|
||||||
|
.SH OPTIONS
|
||||||
|
Switch names may be abbreviated, and are not case sensitive.
|
||||||
|
.TP
|
||||||
|
.B \-replace
|
||||||
|
Delete any existing COM blocks from the file.
|
||||||
|
.TP
|
||||||
|
.BI \-comment " text"
|
||||||
|
Supply text for new COM block on command line.
|
||||||
|
.TP
|
||||||
|
.BI \-cfile " name"
|
||||||
|
Read text for new COM block from named file.
|
||||||
|
.PP
|
||||||
|
If you have only one line of comment text to add, you can provide it on the
|
||||||
|
command line with
|
||||||
|
.BR \-comment .
|
||||||
|
The comment text must be surrounded with quotes so that it is treated as a
|
||||||
|
single argument. Longer comments can be read from a text file.
|
||||||
|
.PP
|
||||||
|
If you give neither
|
||||||
|
.B \-comment
|
||||||
|
nor
|
||||||
|
.BR \-cfile ,
|
||||||
|
then
|
||||||
|
.B wrjpgcom
|
||||||
|
will read the comment text from standard input. (In this case an input image
|
||||||
|
file name MUST be supplied, so that the source JPEG file comes from somewhere
|
||||||
|
else.) You can enter multiple lines, up to 64KB worth. Type an end-of-file
|
||||||
|
indicator (usually control-D) to terminate the comment text entry.
|
||||||
|
.PP
|
||||||
|
.B wrjpgcom
|
||||||
|
will not add a COM block if the provided comment string is empty. Therefore
|
||||||
|
\fB\-replace \-comment ""\fR can be used to delete all COM blocks from a file.
|
||||||
|
.SH EXAMPLES
|
||||||
|
.LP
|
||||||
|
Add a short comment to in.jpg, producing out.jpg:
|
||||||
|
.IP
|
||||||
|
.B wrjpgcom \-c
|
||||||
|
\fI"View of my back yard" in.jpg
|
||||||
|
.B >
|
||||||
|
.I out.jpg
|
||||||
|
.PP
|
||||||
|
Attach a long comment previously stored in comment.txt:
|
||||||
|
.IP
|
||||||
|
.B wrjpgcom
|
||||||
|
.I in.jpg
|
||||||
|
.B <
|
||||||
|
.I comment.txt
|
||||||
|
.B >
|
||||||
|
.I out.jpg
|
||||||
|
.PP
|
||||||
|
or equivalently
|
||||||
|
.IP
|
||||||
|
.B wrjpgcom
|
||||||
|
.B -cfile
|
||||||
|
.I comment.txt
|
||||||
|
.B <
|
||||||
|
.I in.jpg
|
||||||
|
.B >
|
||||||
|
.I out.jpg
|
||||||
|
.SH SEE ALSO
|
||||||
|
.BR cjpeg (1),
|
||||||
|
.BR djpeg (1),
|
||||||
|
.BR jpegtran (1),
|
||||||
|
.BR rdjpgcom (1)
|
||||||
|
.SH AUTHOR
|
||||||
|
Independent JPEG Group
|
Loading…
Reference in a new issue