File size: 18,335 Bytes
9375c9a |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 |
<html><!-- Created using the cpp_pretty_printer from the dlib C++ library. See http://dlib.net for updates. --><head><title>dlib C++ Library - cdjpeg.h</title></head><body bgcolor='white'><pre>
<font color='#009900'>/*
* cdjpeg.h
*
* Copyright (C) 1994-1997, Thomas G. Lane.
* 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 common declarations for the sample applications
* cjpeg and djpeg. It is NOT used by the core JPEG library.
*/</font>
<font color='#0000FF'>#define</font> JPEG_CJPEG_DJPEG <font color='#009900'>/* define proper options in jconfig.h */</font>
<font color='#0000FF'>#define</font> JPEG_INTERNAL_OPTIONS <font color='#009900'>/* cjpeg.c,djpeg.c need to see xxx_SUPPORTED */</font>
<font color='#0000FF'>#include</font> "<a style='text-decoration:none' href='jinclude.h.html'>jinclude.h</a>"
<font color='#0000FF'>#include</font> "<a style='text-decoration:none' href='jpeglib.h.html'>jpeglib.h</a>"
<font color='#0000FF'>#include</font> "<a style='text-decoration:none' href='jerror.h.html'>jerror.h</a>" <font color='#009900'>/* get library error codes too */</font>
<font color='#0000FF'>#include</font> "<a style='text-decoration:none' href='cderror.h.html'>cderror.h</a>" <font color='#009900'>/* get application-specific error codes */</font>
<font color='#009900'>/*
* Object interface for cjpeg's source file decoding modules
*/</font>
<font color='#0000FF'>typedef</font> <font color='#0000FF'>struct</font> cjpeg_source_struct <font color='#5555FF'>*</font> cjpeg_source_ptr;
<font color='#0000FF'>struct</font> <b><a name='cjpeg_source_struct'></a>cjpeg_source_struct</b> <b>{</b>
<b><a name='JMETHOD'></a>JMETHOD</b><font face='Lucida Console'>(</font><font color='#0000FF'><u>void</u></font>, start_input, <font face='Lucida Console'>(</font>j_compress_ptr cinfo,
cjpeg_source_ptr sinfo<font face='Lucida Console'>)</font><font face='Lucida Console'>)</font>;
<b><a name='JMETHOD'></a>JMETHOD</b><font face='Lucida Console'>(</font>JDIMENSION, get_pixel_rows, <font face='Lucida Console'>(</font>j_compress_ptr cinfo,
cjpeg_source_ptr sinfo<font face='Lucida Console'>)</font><font face='Lucida Console'>)</font>;
<b><a name='JMETHOD'></a>JMETHOD</b><font face='Lucida Console'>(</font><font color='#0000FF'><u>void</u></font>, finish_input, <font face='Lucida Console'>(</font>j_compress_ptr cinfo,
cjpeg_source_ptr sinfo<font face='Lucida Console'>)</font><font face='Lucida Console'>)</font>;
FILE <font color='#5555FF'>*</font>input_file;
JSAMPARRAY buffer;
JDIMENSION buffer_height;
<b>}</b>;
<font color='#009900'>/*
* Object interface for djpeg's output file encoding modules
*/</font>
<font color='#0000FF'>typedef</font> <font color='#0000FF'>struct</font> djpeg_dest_struct <font color='#5555FF'>*</font> djpeg_dest_ptr;
<font color='#0000FF'>struct</font> <b><a name='djpeg_dest_struct'></a>djpeg_dest_struct</b> <b>{</b>
<font color='#009900'>/* start_output is called after jpeg_start_decompress finishes.
* The color map will be ready at this time, if one is needed.
*/</font>
<b><a name='JMETHOD'></a>JMETHOD</b><font face='Lucida Console'>(</font><font color='#0000FF'><u>void</u></font>, start_output, <font face='Lucida Console'>(</font>j_decompress_ptr cinfo,
djpeg_dest_ptr dinfo<font face='Lucida Console'>)</font><font face='Lucida Console'>)</font>;
<font color='#009900'>/* Emit the specified number of pixel rows from the buffer. */</font>
<b><a name='JMETHOD'></a>JMETHOD</b><font face='Lucida Console'>(</font><font color='#0000FF'><u>void</u></font>, put_pixel_rows, <font face='Lucida Console'>(</font>j_decompress_ptr cinfo,
djpeg_dest_ptr dinfo,
JDIMENSION rows_supplied<font face='Lucida Console'>)</font><font face='Lucida Console'>)</font>;
<font color='#009900'>/* Finish up at the end of the image. */</font>
<b><a name='JMETHOD'></a>JMETHOD</b><font face='Lucida Console'>(</font><font color='#0000FF'><u>void</u></font>, finish_output, <font face='Lucida Console'>(</font>j_decompress_ptr cinfo,
djpeg_dest_ptr dinfo<font face='Lucida Console'>)</font><font face='Lucida Console'>)</font>;
<font color='#009900'>/* Target file spec; filled in by djpeg.c after object is created. */</font>
FILE <font color='#5555FF'>*</font> output_file;
<font color='#009900'>/* Output pixel-row buffer. Created by module init or start_output.
* Width is cinfo->output_width * cinfo->output_components;
* height is buffer_height.
*/</font>
JSAMPARRAY buffer;
JDIMENSION buffer_height;
<b>}</b>;
<font color='#009900'>/*
* cjpeg/djpeg may need to perform extra passes to convert to or from
* the source/destination file format. The JPEG library does not know
* about these passes, but we'd like them to be counted by the progress
* monitor. We use an expanded progress monitor object to hold the
* additional pass count.
*/</font>
<font color='#0000FF'>struct</font> <b><a name='cdjpeg_progress_mgr'></a>cdjpeg_progress_mgr</b> <b>{</b>
<font color='#0000FF'>struct</font> jpeg_progress_mgr pub; <font color='#009900'>/* fields known to JPEG library */</font>
<font color='#0000FF'><u>int</u></font> completed_extra_passes; <font color='#009900'>/* extra passes completed */</font>
<font color='#0000FF'><u>int</u></font> total_extra_passes; <font color='#009900'>/* total extra */</font>
<font color='#009900'>/* last printed percentage stored here to avoid multiple printouts */</font>
<font color='#0000FF'><u>int</u></font> percent_done;
<b>}</b>;
<font color='#0000FF'>typedef</font> <font color='#0000FF'>struct</font> cdjpeg_progress_mgr <font color='#5555FF'>*</font> cd_progress_ptr;
<font color='#009900'>/* Short forms of external names for systems with brain-damaged linkers. */</font>
<font color='#0000FF'>#ifdef</font> NEED_SHORT_EXTERNAL_NAMES
<font color='#0000FF'>#define</font> jinit_read_bmp jIRdBMP
<font color='#0000FF'>#define</font> jinit_write_bmp jIWrBMP
<font color='#0000FF'>#define</font> jinit_read_gif jIRdGIF
<font color='#0000FF'>#define</font> jinit_write_gif jIWrGIF
<font color='#0000FF'>#define</font> jinit_read_ppm jIRdPPM
<font color='#0000FF'>#define</font> jinit_write_ppm jIWrPPM
<font color='#0000FF'>#define</font> jinit_read_rle jIRdRLE
<font color='#0000FF'>#define</font> jinit_write_rle jIWrRLE
<font color='#0000FF'>#define</font> jinit_read_targa jIRdTarga
<font color='#0000FF'>#define</font> jinit_write_targa jIWrTarga
<font color='#0000FF'>#define</font> read_quant_tables RdQTables
<font color='#0000FF'>#define</font> read_scan_script RdScnScript
<font color='#0000FF'>#define</font> set_quality_ratings SetQRates
<font color='#0000FF'>#define</font> set_quant_slots SetQSlots
<font color='#0000FF'>#define</font> set_sample_factors SetSFacts
<font color='#0000FF'>#define</font> read_color_map RdCMap
<font color='#0000FF'>#define</font> enable_signal_catcher EnSigCatcher
<font color='#0000FF'>#define</font> start_progress_monitor StProgMon
<font color='#0000FF'>#define</font> end_progress_monitor EnProgMon
<font color='#0000FF'>#define</font> read_stdin RdStdin
<font color='#0000FF'>#define</font> write_stdout WrStdout
<font color='#0000FF'>#endif</font> <font color='#009900'>/* NEED_SHORT_EXTERNAL_NAMES */</font>
<font color='#009900'>/* Module selection routines for I/O modules. */</font>
<b><a name='EXTERN'></a>EXTERN</b><font face='Lucida Console'>(</font>cjpeg_source_ptr<font face='Lucida Console'>)</font> jinit_read_bmp <b><a name='JPP'></a>JPP</b><font face='Lucida Console'>(</font><font face='Lucida Console'>(</font>j_compress_ptr cinfo<font face='Lucida Console'>)</font><font face='Lucida Console'>)</font>;
<b><a name='EXTERN'></a>EXTERN</b><font face='Lucida Console'>(</font>djpeg_dest_ptr<font face='Lucida Console'>)</font> jinit_write_bmp <b><a name='JPP'></a>JPP</b><font face='Lucida Console'>(</font><font face='Lucida Console'>(</font>j_decompress_ptr cinfo,
boolean is_os2<font face='Lucida Console'>)</font><font face='Lucida Console'>)</font>;
<b><a name='EXTERN'></a>EXTERN</b><font face='Lucida Console'>(</font>cjpeg_source_ptr<font face='Lucida Console'>)</font> jinit_read_gif <b><a name='JPP'></a>JPP</b><font face='Lucida Console'>(</font><font face='Lucida Console'>(</font>j_compress_ptr cinfo<font face='Lucida Console'>)</font><font face='Lucida Console'>)</font>;
<b><a name='EXTERN'></a>EXTERN</b><font face='Lucida Console'>(</font>djpeg_dest_ptr<font face='Lucida Console'>)</font> jinit_write_gif <b><a name='JPP'></a>JPP</b><font face='Lucida Console'>(</font><font face='Lucida Console'>(</font>j_decompress_ptr cinfo<font face='Lucida Console'>)</font><font face='Lucida Console'>)</font>;
<b><a name='EXTERN'></a>EXTERN</b><font face='Lucida Console'>(</font>cjpeg_source_ptr<font face='Lucida Console'>)</font> jinit_read_ppm <b><a name='JPP'></a>JPP</b><font face='Lucida Console'>(</font><font face='Lucida Console'>(</font>j_compress_ptr cinfo<font face='Lucida Console'>)</font><font face='Lucida Console'>)</font>;
<b><a name='EXTERN'></a>EXTERN</b><font face='Lucida Console'>(</font>djpeg_dest_ptr<font face='Lucida Console'>)</font> jinit_write_ppm <b><a name='JPP'></a>JPP</b><font face='Lucida Console'>(</font><font face='Lucida Console'>(</font>j_decompress_ptr cinfo<font face='Lucida Console'>)</font><font face='Lucida Console'>)</font>;
<b><a name='EXTERN'></a>EXTERN</b><font face='Lucida Console'>(</font>cjpeg_source_ptr<font face='Lucida Console'>)</font> jinit_read_rle <b><a name='JPP'></a>JPP</b><font face='Lucida Console'>(</font><font face='Lucida Console'>(</font>j_compress_ptr cinfo<font face='Lucida Console'>)</font><font face='Lucida Console'>)</font>;
<b><a name='EXTERN'></a>EXTERN</b><font face='Lucida Console'>(</font>djpeg_dest_ptr<font face='Lucida Console'>)</font> jinit_write_rle <b><a name='JPP'></a>JPP</b><font face='Lucida Console'>(</font><font face='Lucida Console'>(</font>j_decompress_ptr cinfo<font face='Lucida Console'>)</font><font face='Lucida Console'>)</font>;
<b><a name='EXTERN'></a>EXTERN</b><font face='Lucida Console'>(</font>cjpeg_source_ptr<font face='Lucida Console'>)</font> jinit_read_targa <b><a name='JPP'></a>JPP</b><font face='Lucida Console'>(</font><font face='Lucida Console'>(</font>j_compress_ptr cinfo<font face='Lucida Console'>)</font><font face='Lucida Console'>)</font>;
<b><a name='EXTERN'></a>EXTERN</b><font face='Lucida Console'>(</font>djpeg_dest_ptr<font face='Lucida Console'>)</font> jinit_write_targa <b><a name='JPP'></a>JPP</b><font face='Lucida Console'>(</font><font face='Lucida Console'>(</font>j_decompress_ptr cinfo<font face='Lucida Console'>)</font><font face='Lucida Console'>)</font>;
<font color='#009900'>/* cjpeg support routines (in rdswitch.c) */</font>
<b><a name='EXTERN'></a>EXTERN</b><font face='Lucida Console'>(</font>boolean<font face='Lucida Console'>)</font> read_quant_tables <b><a name='JPP'></a>JPP</b><font face='Lucida Console'>(</font><font face='Lucida Console'>(</font>j_compress_ptr cinfo, <font color='#0000FF'><u>char</u></font> <font color='#5555FF'>*</font> filename,
boolean force_baseline<font face='Lucida Console'>)</font><font face='Lucida Console'>)</font>;
<b><a name='EXTERN'></a>EXTERN</b><font face='Lucida Console'>(</font>boolean<font face='Lucida Console'>)</font> read_scan_script <b><a name='JPP'></a>JPP</b><font face='Lucida Console'>(</font><font face='Lucida Console'>(</font>j_compress_ptr cinfo, <font color='#0000FF'><u>char</u></font> <font color='#5555FF'>*</font> filename<font face='Lucida Console'>)</font><font face='Lucida Console'>)</font>;
<b><a name='EXTERN'></a>EXTERN</b><font face='Lucida Console'>(</font>boolean<font face='Lucida Console'>)</font> set_quality_ratings <b><a name='JPP'></a>JPP</b><font face='Lucida Console'>(</font><font face='Lucida Console'>(</font>j_compress_ptr cinfo, <font color='#0000FF'><u>char</u></font> <font color='#5555FF'>*</font>arg,
boolean force_baseline<font face='Lucida Console'>)</font><font face='Lucida Console'>)</font>;
<b><a name='EXTERN'></a>EXTERN</b><font face='Lucida Console'>(</font>boolean<font face='Lucida Console'>)</font> set_quant_slots <b><a name='JPP'></a>JPP</b><font face='Lucida Console'>(</font><font face='Lucida Console'>(</font>j_compress_ptr cinfo, <font color='#0000FF'><u>char</u></font> <font color='#5555FF'>*</font>arg<font face='Lucida Console'>)</font><font face='Lucida Console'>)</font>;
<b><a name='EXTERN'></a>EXTERN</b><font face='Lucida Console'>(</font>boolean<font face='Lucida Console'>)</font> set_sample_factors <b><a name='JPP'></a>JPP</b><font face='Lucida Console'>(</font><font face='Lucida Console'>(</font>j_compress_ptr cinfo, <font color='#0000FF'><u>char</u></font> <font color='#5555FF'>*</font>arg<font face='Lucida Console'>)</font><font face='Lucida Console'>)</font>;
<font color='#009900'>/* djpeg support routines (in rdcolmap.c) */</font>
<b><a name='EXTERN'></a>EXTERN</b><font face='Lucida Console'>(</font><font color='#0000FF'><u>void</u></font><font face='Lucida Console'>)</font> read_color_map <b><a name='JPP'></a>JPP</b><font face='Lucida Console'>(</font><font face='Lucida Console'>(</font>j_decompress_ptr cinfo, FILE <font color='#5555FF'>*</font> infile<font face='Lucida Console'>)</font><font face='Lucida Console'>)</font>;
<font color='#009900'>/* common support routines (in cdjpeg.c) */</font>
<b><a name='EXTERN'></a>EXTERN</b><font face='Lucida Console'>(</font><font color='#0000FF'><u>void</u></font><font face='Lucida Console'>)</font> enable_signal_catcher <b><a name='JPP'></a>JPP</b><font face='Lucida Console'>(</font><font face='Lucida Console'>(</font>j_common_ptr cinfo<font face='Lucida Console'>)</font><font face='Lucida Console'>)</font>;
<b><a name='EXTERN'></a>EXTERN</b><font face='Lucida Console'>(</font><font color='#0000FF'><u>void</u></font><font face='Lucida Console'>)</font> start_progress_monitor <b><a name='JPP'></a>JPP</b><font face='Lucida Console'>(</font><font face='Lucida Console'>(</font>j_common_ptr cinfo,
cd_progress_ptr progress<font face='Lucida Console'>)</font><font face='Lucida Console'>)</font>;
<b><a name='EXTERN'></a>EXTERN</b><font face='Lucida Console'>(</font><font color='#0000FF'><u>void</u></font><font face='Lucida Console'>)</font> end_progress_monitor <b><a name='JPP'></a>JPP</b><font face='Lucida Console'>(</font><font face='Lucida Console'>(</font>j_common_ptr cinfo<font face='Lucida Console'>)</font><font face='Lucida Console'>)</font>;
<b><a name='EXTERN'></a>EXTERN</b><font face='Lucida Console'>(</font>boolean<font face='Lucida Console'>)</font> keymatch <b><a name='JPP'></a>JPP</b><font face='Lucida Console'>(</font><font face='Lucida Console'>(</font><font color='#0000FF'><u>char</u></font> <font color='#5555FF'>*</font> arg, <font color='#0000FF'>const</font> <font color='#0000FF'><u>char</u></font> <font color='#5555FF'>*</font> keyword, <font color='#0000FF'><u>int</u></font> minchars<font face='Lucida Console'>)</font><font face='Lucida Console'>)</font>;
<b><a name='EXTERN'></a>EXTERN</b><font face='Lucida Console'>(</font>FILE <font color='#5555FF'>*</font><font face='Lucida Console'>)</font> read_stdin <b><a name='JPP'></a>JPP</b><font face='Lucida Console'>(</font><font face='Lucida Console'>(</font><font color='#0000FF'><u>void</u></font><font face='Lucida Console'>)</font><font face='Lucida Console'>)</font>;
<b><a name='EXTERN'></a>EXTERN</b><font face='Lucida Console'>(</font>FILE <font color='#5555FF'>*</font><font face='Lucida Console'>)</font> write_stdout <b><a name='JPP'></a>JPP</b><font face='Lucida Console'>(</font><font face='Lucida Console'>(</font><font color='#0000FF'><u>void</u></font><font face='Lucida Console'>)</font><font face='Lucida Console'>)</font>;
<font color='#009900'>/* miscellaneous useful macros */</font>
<font color='#0000FF'>#ifdef</font> DONT_USE_B_MODE <font color='#009900'>/* define mode parameters for fopen() */</font>
<font color='#0000FF'>#define</font> READ_BINARY "<font color='#CC0000'>r</font>"
<font color='#0000FF'>#define</font> WRITE_BINARY "<font color='#CC0000'>w</font>"
<font color='#0000FF'>#else</font>
<font color='#0000FF'>#ifdef</font> VMS <font color='#009900'>/* VMS is very nonstandard */</font>
<font color='#0000FF'>#define</font> READ_BINARY "<font color='#CC0000'>rb</font>", "<font color='#CC0000'>ctx=stm</font>"
<font color='#0000FF'>#define</font> WRITE_BINARY "<font color='#CC0000'>wb</font>", "<font color='#CC0000'>ctx=stm</font>"
<font color='#0000FF'>#else</font> <font color='#009900'>/* standard ANSI-compliant case */</font>
<font color='#0000FF'>#define</font> READ_BINARY "<font color='#CC0000'>rb</font>"
<font color='#0000FF'>#define</font> WRITE_BINARY "<font color='#CC0000'>wb</font>"
<font color='#0000FF'>#endif</font>
<font color='#0000FF'>#endif</font>
<font color='#0000FF'>#ifndef</font> EXIT_FAILURE <font color='#009900'>/* define exit() codes if not provided */</font>
<font color='#0000FF'>#define</font> EXIT_FAILURE <font color='#979000'>1</font>
<font color='#0000FF'>#endif</font>
<font color='#0000FF'>#ifndef</font> EXIT_SUCCESS
<font color='#0000FF'>#ifdef</font> VMS
<font color='#0000FF'>#define</font> EXIT_SUCCESS <font color='#979000'>1</font> <font color='#009900'>/* VMS is very nonstandard */</font>
<font color='#0000FF'>#else</font>
<font color='#0000FF'>#define</font> EXIT_SUCCESS <font color='#979000'>0</font>
<font color='#0000FF'>#endif</font>
<font color='#0000FF'>#endif</font>
<font color='#0000FF'>#ifndef</font> EXIT_WARNING
<font color='#0000FF'>#ifdef</font> VMS
<font color='#0000FF'>#define</font> EXIT_WARNING <font color='#979000'>1</font> <font color='#009900'>/* VMS is very nonstandard */</font>
<font color='#0000FF'>#else</font>
<font color='#0000FF'>#define</font> EXIT_WARNING <font color='#979000'>2</font>
<font color='#0000FF'>#endif</font>
<font color='#0000FF'>#endif</font>
</pre></body></html> |