C# 클래스 BitMiracle.LibJpeg.Classic.jpeg_compress_struct

JPEG compression routine.
상속: jpeg_common_struct
파일 보기 프로젝트 열기: prepare/HTML-Renderer 1 사용 예제들

공개 프로퍼티들

프로퍼티 타입 설명
block_size int
color_transform J_COLOR_TRANSFORM
do_fancy_downsampling bool
q_scale_factor int[]
scale_denom int
scale_num int

공개 메소드들

메소드 설명
jpeg_abort_compress ( ) : void

Abort processing of a JPEG compression operation.

jpeg_add_quant_table ( int which_tbl, int basic_table, int scale_factor, bool force_baseline ) : void

Allows an arbitrary quantization table to be created.

jpeg_compress_struct ( ) : System

Initializes a new instance of the jpeg_compress_struct class.

jpeg_compress_struct ( jpeg_error_mgr errorManager ) : System

Initializes a new instance of the jpeg_compress_struct class.

jpeg_default_colorspace ( ) : void

Select an appropriate JPEG colorspace based on jpeg_compress_struct.In_color_space, and calls jpeg_compress_struct.jpeg_set_colorspace

This is actually a subroutine of jpeg_set_defaults. It's broken out in case you want to change just the colorspace-dependent JPEG parameters.

jpeg_default_qtables ( bool force_baseline ) : void

Set or change the 'quality' (quantization) setting, using default tables and straight percentage-scaling quality scales. This entry point allows different scalings for luminance and chrominance.

jpeg_finish_compress ( ) : void

Finishes JPEG compression.

If a multipass operating mode was selected, this may do a great deal of work including most of the actual output.

jpeg_quality_scaling ( int quality ) : int

Converts a value on the IJG-recommended quality scale to a linear scaling percentage.

jpeg_set_colorspace ( J_COLOR_SPACE colorspace ) : void

Set the JPEG colorspace (property jpeg_compress_struct.Jpeg_color_space, and choose colorspace-dependent parameters appropriately.

See Special color spaces, below, before using this. A large number of parameters, including all per-component parameters, are set by this routine; if you want to twiddle individual parameters you should call jpeg_set_colorspace before rather than after.

jpeg_set_defaults ( ) : void

Jpeg_set_defaultses this instance.

Uses only the input image's color space (property jpeg_compress_struct.In_color_space, which must already be set in jpeg_compress_struct). Many applications will only need to use this routine and perhaps jpeg_compress_struct.jpeg_set_quality.

jpeg_set_linear_quality ( int scale_factor, bool force_baseline ) : void

Same as jpeg_set_quality except that the generated tables are the sample tables given in the JPEG specification section K.1, multiplied by the specified scale factor.

Note that larger scale factors give lower quality. This entry point is useful for conforming to the Adobe PostScript DCT conventions, but we do not recommend linear scaling as a user-visible quality scale otherwise.

jpeg_set_quality ( int quality, bool force_baseline ) : void

Constructs JPEG quantization tables appropriate for the indicated quality setting.

Note that the exact mapping from quality values to tables may change in future IJG releases as more is learned about DCT quantization.

jpeg_simple_progression ( ) : void

Generates a default scan script for writing a progressive-JPEG file.

This is the recommended method of creating a progressive file, unless you want to make a custom scan sequence. You must ensure that the JPEG color space is set correctly before calling this routine.

jpeg_start_compress ( bool write_all_tables ) : void

Starts JPEG compression.

Before calling this, all parameters and a data destination must be set up.

jpeg_stdio_dest ( Stream outfile ) : void

Sets output stream.

The caller must have already opened the stream, and is responsible for closing it after finishing compression.

jpeg_suppress_tables ( bool suppress ) : void

Forcibly suppress or un-suppress all quantization and Huffman tables.

Marks all currently defined tables as already written (if suppress) or not written (if !suppress). This will control whether they get emitted by a subsequent jpeg_compress_struct.jpeg_start_compress call.
This routine is exported for use by applications that want to produce abbreviated JPEG datastreams.

jpeg_write_coefficients ( jvirt_array coef_arrays ) : void

Compression initialization for writing raw-coefficient data. Useful for lossless transcoding.

Before calling this, all parameters and a data destination must be set up. Call jpeg_finish_compress to actually write the data.

jpeg_write_m_byte ( byte val ) : void

Writes a byte of special marker's data.

jpeg_write_m_header ( int marker, int datalen ) : void

Writes special marker's header.

After calling this method you need to call jpeg_compress_struct.jpeg_write_m_byte exactly the number of times given in the length parameter.
This method lets you empty the output buffer partway through a marker, which might be important when using a suspending data destination module. In any case, if you are using a suspending destination, you should flush its buffer after inserting any special markers.

jpeg_write_marker ( int marker, byte data ) : void

Write a special marker.

This is only recommended for writing COM or APPn markers. Must be called after jpeg_compress_struct.jpeg_start_compress and before first call to jpeg_compress_struct.jpeg_write_scanlines or jpeg_compress_struct.jpeg_write_raw_data.

jpeg_write_raw_data ( byte data, int num_lines ) : int

Alternate entry point to write raw data.

Processes exactly one iMCU row per call, unless suspended. Replaces jpeg_write_scanlines when writing raw downsampled data.

jpeg_write_scanlines ( byte scanlines, int num_lines ) : int

Write some scanlines of data to the JPEG compressor.

We warn about excess calls to jpeg_write_scanlines() since this likely signals an application programmer error. However, excess scanlines passed in the last valid call are "silently" ignored, so that the application need not adjust num_lines for end-of-image when using a multiple-scanline buffer.

jpeg_write_tables ( ) : void

Alternate compression function: just write an abbreviated table file.

Before calling this, all parameters and a data destination must be set up.
To produce a pair of files containing abbreviated tables and abbreviated image data, one would proceed as follows:
Initialize JPEG object
Set JPEG parameters
Set destination to table file
jpeg_write_tables();
Set destination to image file
jpeg_start_compress(false);
Write data...
jpeg_finish_compress();

jpeg_write_tables has the side effect of marking all tables written (same as jpeg_suppress_tables(true)). Thus a subsequent jpeg_start_compress will not re-emit the tables unless it is passed write_all_tables=true.

비공개 메소드들

메소드 설명
add_huff_table ( JHUFF_TBL &htblptr, byte bits, byte val ) : void

Define a Huffman table

fill_a_scan ( int &scanIndex, int ci, int Ss, int Se, int Ah, int Al ) : void

Support routine: generate one scan for specified component

fill_dc_scans ( int &scanIndex, int ncomps, int Ah, int Al ) : void

Support routine: generate interleaved DC scan if possible, else N scans

fill_scans ( int &scanIndex, int ncomps, int Ss, int Se, int Ah, int Al ) : void

Support routine: generate one scan for each component

initial_setup ( bool transcode_only ) : void

Do computations that are needed before master selection phase

initialize ( ) : void

Initialization of a JPEG compression object

jinit_c_main_controller ( bool need_full_buffer ) : void

Initialize main buffer controller.

jinit_c_master_control ( bool transcode_only ) : void

Initialize master compression control.

jinit_compress_master ( ) : void

Master selection of compression modules. This is done once at the start of processing an image. We determine which modules will be used and give them appropriate initialization calls. This routine is in charge of selecting the modules to be executed and making an initialization call to each one.

jpeg_calc_jpeg_dimensions ( ) : void
jpeg_calc_trans_dimensions ( ) : void
jpeg_set_colorspace_SET_COMP ( int index, int id, int hsamp, int vsamp, int quant, int dctbl, int actbl ) : void
reduce_script ( ) : void
std_huff_tables ( ) : void

Set up the standard Huffman tables (cf. JPEG standard section K.3) IMPORTANT: these are only valid for 8-bit data precision!

transencode_master_selection ( jvirt_array coef_arrays ) : void

Master selection of compression modules for transcoding.

validate_script ( ) : void

Verify that the scan script in scan_info[] is valid; also determine whether it uses progressive JPEG, and set progressive_mode.

메소드 상세

jpeg_abort_compress() 공개 메소드

Abort processing of a JPEG compression operation.
public jpeg_abort_compress ( ) : void
리턴 void

jpeg_add_quant_table() 공개 메소드

Allows an arbitrary quantization table to be created.
public jpeg_add_quant_table ( int which_tbl, int basic_table, int scale_factor, bool force_baseline ) : void
which_tbl int Indicates which table slot to fill.
basic_table int An array of 64 unsigned integers given in normal array order. /// These values are multiplied by scale_factor/100 and then clamped to the range 1..65535 /// (or to 1..255 if force_baseline is true).
/// The basic table should be given in JPEG zigzag order. ///
scale_factor int Multiplier for values in basic_table.
force_baseline bool Defines range of values in basic_table. /// If true - 1..255, otherwise - 1..65535.
리턴 void

jpeg_compress_struct() 공개 메소드

Initializes a new instance of the jpeg_compress_struct class.
public jpeg_compress_struct ( ) : System
리턴 System

jpeg_compress_struct() 공개 메소드

Initializes a new instance of the jpeg_compress_struct class.
public jpeg_compress_struct ( jpeg_error_mgr errorManager ) : System
errorManager jpeg_error_mgr The error manager.
리턴 System

jpeg_default_colorspace() 공개 메소드

Select an appropriate JPEG colorspace based on jpeg_compress_struct.In_color_space, and calls jpeg_compress_struct.jpeg_set_colorspace
This is actually a subroutine of jpeg_set_defaults. It's broken out in case you want to change just the colorspace-dependent JPEG parameters.
public jpeg_default_colorspace ( ) : void
리턴 void

jpeg_default_qtables() 공개 메소드

Set or change the 'quality' (quantization) setting, using default tables and straight percentage-scaling quality scales. This entry point allows different scalings for luminance and chrominance.
public jpeg_default_qtables ( bool force_baseline ) : void
force_baseline bool if set to true then baseline version is forced.
리턴 void

jpeg_finish_compress() 공개 메소드

Finishes JPEG compression.
If a multipass operating mode was selected, this may do a great deal of work including most of the actual output.
public jpeg_finish_compress ( ) : void
리턴 void

jpeg_quality_scaling() 공개 정적인 메소드

Converts a value on the IJG-recommended quality scale to a linear scaling percentage.
public static jpeg_quality_scaling ( int quality ) : int
quality int The IJG-recommended quality scale. Should be 0 (terrible) to 100 (very good).
리턴 int

jpeg_set_colorspace() 공개 메소드

Set the JPEG colorspace (property jpeg_compress_struct.Jpeg_color_space, and choose colorspace-dependent parameters appropriately.
See Special color spaces, below, before using this. A large number of parameters, including all per-component parameters, are set by this routine; if you want to twiddle individual parameters you should call jpeg_set_colorspace before rather than after.
public jpeg_set_colorspace ( J_COLOR_SPACE colorspace ) : void
colorspace J_COLOR_SPACE The required colorspace.
리턴 void

jpeg_set_defaults() 공개 메소드

Jpeg_set_defaultses this instance.
Uses only the input image's color space (property jpeg_compress_struct.In_color_space, which must already be set in jpeg_compress_struct). Many applications will only need to use this routine and perhaps jpeg_compress_struct.jpeg_set_quality.
public jpeg_set_defaults ( ) : void
리턴 void

jpeg_set_linear_quality() 공개 메소드

Same as jpeg_set_quality except that the generated tables are the sample tables given in the JPEG specification section K.1, multiplied by the specified scale factor.
Note that larger scale factors give lower quality. This entry point is useful for conforming to the Adobe PostScript DCT conventions, but we do not recommend linear scaling as a user-visible quality scale otherwise.
public jpeg_set_linear_quality ( int scale_factor, bool force_baseline ) : void
scale_factor int The scale_factor.
force_baseline bool If true, then the quantization table entries are /// constrained to the range 1..255 for full JPEG baseline compatibility. In the current /// implementation, this only makes a difference for quality settings below 25, and it /// effectively prevents very small/low quality files from being generated. The IJG decoder /// is capable of reading the non-baseline files generated at low quality settings when /// force_baseline is false, but other decoders may not be.
리턴 void

jpeg_set_quality() 공개 메소드

Constructs JPEG quantization tables appropriate for the indicated quality setting.
Note that the exact mapping from quality values to tables may change in future IJG releases as more is learned about DCT quantization.
public jpeg_set_quality ( int quality, bool force_baseline ) : void
quality int The quality value is expressed on the 0..100 scale recommended by IJG.
force_baseline bool If true, then the quantization table entries are constrained /// to the range 1..255 for full JPEG baseline compatibility. In the current implementation, /// this only makes a difference for quality settings below 25, and it effectively prevents /// very small/low quality files from being generated. The IJG decoder is capable of reading /// the non-baseline files generated at low quality settings when force_baseline is false, /// but other decoders may not be.
리턴 void

jpeg_simple_progression() 공개 메소드

Generates a default scan script for writing a progressive-JPEG file.
This is the recommended method of creating a progressive file, unless you want to make a custom scan sequence. You must ensure that the JPEG color space is set correctly before calling this routine.
public jpeg_simple_progression ( ) : void
리턴 void

jpeg_start_compress() 공개 메소드

Starts JPEG compression.
Before calling this, all parameters and a data destination must be set up.
public jpeg_start_compress ( bool write_all_tables ) : void
write_all_tables bool Write or not write all quantization and Huffman tables.
리턴 void

jpeg_stdio_dest() 공개 메소드

Sets output stream.
The caller must have already opened the stream, and is responsible for closing it after finishing compression.
public jpeg_stdio_dest ( Stream outfile ) : void
outfile Stream The output stream.
리턴 void

jpeg_suppress_tables() 공개 메소드

Forcibly suppress or un-suppress all quantization and Huffman tables.
Marks all currently defined tables as already written (if suppress) or not written (if !suppress). This will control whether they get emitted by a subsequent jpeg_compress_struct.jpeg_start_compress call.
This routine is exported for use by applications that want to produce abbreviated JPEG datastreams.
public jpeg_suppress_tables ( bool suppress ) : void
suppress bool if set to true then suppress tables; /// otherwise unsuppress.
리턴 void

jpeg_write_coefficients() 공개 메소드

Compression initialization for writing raw-coefficient data. Useful for lossless transcoding.
Before calling this, all parameters and a data destination must be set up. Call jpeg_finish_compress to actually write the data.
public jpeg_write_coefficients ( jvirt_array coef_arrays ) : void
coef_arrays jvirt_array The virtual arrays need not be filled or even realized at the time /// jpeg_write_coefficients is called; indeed, the virtual arrays typically will be realized /// during this routine and filled afterwards. ///
리턴 void

jpeg_write_m_byte() 공개 메소드

Writes a byte of special marker's data.
public jpeg_write_m_byte ( byte val ) : void
val byte The byte of data.
리턴 void

jpeg_write_m_header() 공개 메소드

Writes special marker's header.
After calling this method you need to call jpeg_compress_struct.jpeg_write_m_byte exactly the number of times given in the length parameter.
This method lets you empty the output buffer partway through a marker, which might be important when using a suspending data destination module. In any case, if you are using a suspending destination, you should flush its buffer after inserting any special markers.
public jpeg_write_m_header ( int marker, int datalen ) : void
marker int Special marker.
datalen int Length of data associated with the marker.
리턴 void

jpeg_write_marker() 공개 메소드

Write a special marker.
This is only recommended for writing COM or APPn markers. Must be called after jpeg_compress_struct.jpeg_start_compress and before first call to jpeg_compress_struct.jpeg_write_scanlines or jpeg_compress_struct.jpeg_write_raw_data.
public jpeg_write_marker ( int marker, byte data ) : void
marker int Specify the marker type parameter as .COM for COM or /// .APP0 + n for APPn. (Actually, jpeg_write_marker will let you write any marker type, /// but we don't recommend writing any other kinds of marker)
data byte The data associated with the marker.
리턴 void

jpeg_write_raw_data() 공개 메소드

Alternate entry point to write raw data.
Processes exactly one iMCU row per call, unless suspended. Replaces jpeg_write_scanlines when writing raw downsampled data.
public jpeg_write_raw_data ( byte data, int num_lines ) : int
data byte The raw data.
num_lines int The number of scanlines for writing.
리턴 int

jpeg_write_scanlines() 공개 메소드

Write some scanlines of data to the JPEG compressor.
We warn about excess calls to jpeg_write_scanlines() since this likely signals an application programmer error. However, excess scanlines passed in the last valid call are "silently" ignored, so that the application need not adjust num_lines for end-of-image when using a multiple-scanline buffer.
public jpeg_write_scanlines ( byte scanlines, int num_lines ) : int
scanlines byte The array of scanlines.
num_lines int The number of scanlines for writing.
리턴 int

jpeg_write_tables() 공개 메소드

Alternate compression function: just write an abbreviated table file.
Before calling this, all parameters and a data destination must be set up.
To produce a pair of files containing abbreviated tables and abbreviated image data, one would proceed as follows:
Initialize JPEG object
Set JPEG parameters
Set destination to table file
jpeg_write_tables();
Set destination to image file
jpeg_start_compress(false);
Write data...
jpeg_finish_compress();

jpeg_write_tables has the side effect of marking all tables written (same as jpeg_suppress_tables(true)). Thus a subsequent jpeg_start_compress will not re-emit the tables unless it is passed write_all_tables=true.
public jpeg_write_tables ( ) : void
리턴 void

프로퍼티 상세

block_size 공개적으로 프로퍼티

the basic DCT block size: 1..16
public int block_size
리턴 int

color_transform 공개적으로 프로퍼티

Color transform identifier, writes LSE marker if nonzero
public J_COLOR_TRANSFORM color_transform
리턴 J_COLOR_TRANSFORM

do_fancy_downsampling 공개적으로 프로퍼티

TRUE=apply fancy downsampling
public bool do_fancy_downsampling
리턴 bool

q_scale_factor 공개적으로 프로퍼티

corresponding scale factors (percentage, initialized 100).
public int[] q_scale_factor
리턴 int[]

scale_denom 공개적으로 프로퍼티

The scale denomenator
public int scale_denom
리턴 int

scale_num 공개적으로 프로퍼티

The scale numerator
public int scale_num
리턴 int