BitMiracle.LibJpeg.Classic.jpeg_decompress_struct.default_decompress_parms C# (CSharp) Method

default_decompress_parms() private method

Set default decompression parameters.
private default_decompress_parms ( ) : void
return void
        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;
        }