BitMiracle.LibJpeg.Classic.Internal.jpeg_marker_reader.jpeg_save_markers C# (CSharp) Method

jpeg_save_markers() public method

public jpeg_save_markers ( int marker_code, int length_limit ) : void
marker_code int
length_limit int
return void
        public void jpeg_save_markers(int marker_code, int length_limit)
        {
            /* Choose processor routine to use.
             * APP0/APP14 have special requirements.
             */
            jpeg_decompress_struct.jpeg_marker_parser_method processor;
            if (length_limit != 0)
            {
                processor = save_marker;
                /* If saving APP0/APP14, save at least enough for our internal use. */
                if (marker_code == (int)JPEG_MARKER.APP0 && length_limit < APP0_DATA_LEN)
                    length_limit = APP0_DATA_LEN;
                else if (marker_code == (int)JPEG_MARKER.APP14 && length_limit < APP14_DATA_LEN)
                    length_limit = APP14_DATA_LEN;
            }
            else
            {
                processor = skip_variable;
                /* If discarding APP0/APP14, use our regular on-the-fly processor. */
                if (marker_code == (int)JPEG_MARKER.APP0 || marker_code == (int)JPEG_MARKER.APP14)
                    processor = get_interesting_appn;
            }

            if (marker_code == (int)JPEG_MARKER.COM)
            {
                m_process_COM = processor;
                m_length_limit_COM = length_limit;
            }
            else if (marker_code >= (int)JPEG_MARKER.APP0 && marker_code <= (int)JPEG_MARKER.APP15)
            {
                m_process_APPn[marker_code - (int)JPEG_MARKER.APP0] = processor;
                m_length_limit_APPn[marker_code - (int)JPEG_MARKER.APP0] = length_limit;
            }
            else
                m_cinfo.ERREXIT(J_MESSAGE_CODE.JERR_UNKNOWN_MARKER, marker_code);
        }