private void default_decompress_parms()
{
/* Guess the input colorspace, and set output colorspace accordingly. */
/* Note application may override our guesses. */
switch (m_num_components)
{
case 1:
m_jpeg_color_space = J_COLOR_SPACE.JCS_GRAYSCALE;
m_out_color_space = J_COLOR_SPACE.JCS_GRAYSCALE;
break;
case 3:
int cid0 = m_comp_info[0].Component_id;
int cid1 = m_comp_info[1].Component_id;
int cid2 = m_comp_info[2].Component_id;
/* First try to guess from the component IDs */
if (cid0 == 0x01 && cid1 == 0x02 && cid2 == 0x03)
{
m_jpeg_color_space = J_COLOR_SPACE.JCS_YCbCr;
}
else if (cid0 == 0x01 && cid1 == 0x22 && cid2 == 0x23)
{
m_jpeg_color_space = J_COLOR_SPACE.JCS_BG_YCC;
}
else if (cid0 == 0x52 && cid1 == 0x47 && cid2 == 0x42)
{
/* ASCII 'R', 'G', 'B' */
m_jpeg_color_space = J_COLOR_SPACE.JCS_RGB;
}
else if (cid0 == 0x72 && cid1 == 0x67 && cid2 == 0x62)
{
/* ASCII 'r', 'g', 'b' */
m_jpeg_color_space = J_COLOR_SPACE.JCS_BG_RGB;
}
else if (m_saw_JFIF_marker)
{
/* assume it's YCbCr */
m_jpeg_color_space = J_COLOR_SPACE.JCS_YCbCr;
}
else if (m_saw_Adobe_marker)
{
switch (m_Adobe_transform)
{
case 0:
m_jpeg_color_space = J_COLOR_SPACE.JCS_RGB;
break;
case 1:
m_jpeg_color_space = J_COLOR_SPACE.JCS_YCbCr;
break;
default:
WARNMS(J_MESSAGE_CODE.JWRN_ADOBE_XFORM, m_Adobe_transform);
/* assume it's YCbCr */
m_jpeg_color_space = J_COLOR_SPACE.JCS_YCbCr;
break;
}
}
else
{
TRACEMS(1, J_MESSAGE_CODE.JTRC_UNKNOWN_IDS, cid0, cid1, cid2);
/* assume it's YCbCr */
m_jpeg_color_space = J_COLOR_SPACE.JCS_YCbCr;
}
/* Always guess RGB is proper output colorspace. */
m_out_color_space = J_COLOR_SPACE.JCS_RGB;
break;
case 4:
if (m_saw_Adobe_marker)
{
switch (m_Adobe_transform)
{
case 0:
m_jpeg_color_space = J_COLOR_SPACE.JCS_CMYK;
break;
case 2:
m_jpeg_color_space = J_COLOR_SPACE.JCS_YCCK;
break;
default:
WARNMS(J_MESSAGE_CODE.JWRN_ADOBE_XFORM, m_Adobe_transform);
/* assume it's YCCK */
m_jpeg_color_space = J_COLOR_SPACE.JCS_YCCK;
break;
}
}
else
{
/* No special markers, assume straight CMYK. */
m_jpeg_color_space = J_COLOR_SPACE.JCS_CMYK;
}
m_out_color_space = J_COLOR_SPACE.JCS_CMYK;
break;
default:
m_jpeg_color_space = J_COLOR_SPACE.JCS_UNKNOWN;
m_out_color_space = J_COLOR_SPACE.JCS_UNKNOWN;
break;
}
/* Set defaults for other decompression parameters. */
m_scale_num = block_size; /* 1:1 scaling */
m_scale_denom = block_size;
m_buffered_image = false;
m_raw_data_out = false;
m_dct_method = JpegConstants.JDCT_DEFAULT;
m_do_fancy_upsampling = true;
m_do_block_smoothing = true;
m_quantize_colors = false;
/* We set these in case application only sets quantize_colors. */
m_dither_mode = J_DITHER_MODE.JDITHER_FS;
m_two_pass_quantize = true;
m_desired_number_of_colors = 256;
m_colormap = null;
/* Initialize for no mode change in buffered-image mode. */
m_enable_1pass_quant = false;
m_enable_external_quant = false;
m_enable_2pass_quant = false;
}