BitMiracle.LibTiff.Classic.Internal.JpegCodec.InitializeLibJPEG C# (CSharp) Метод

InitializeLibJPEG() публичный Метод

public InitializeLibJPEG ( bool force_encode, bool force_decode ) : bool
force_encode bool
force_decode bool
Результат bool
        public bool InitializeLibJPEG(bool force_encode, bool force_decode)
        {
            int[] byte_counts = null;
            bool data_is_empty = true;
            bool decompress;

            if (m_cinfo_initialized)
            {
                if (force_encode && m_common.IsDecompressor)
                    TIFFjpeg_destroy();
                else if (force_decode && !m_common.IsDecompressor)
                    TIFFjpeg_destroy();
                else
                    return true;

                m_cinfo_initialized = false;
            }

            /*
             * Do we have tile data already?  Make sure we initialize the
             * the state in decompressor mode if we have tile data, even if we
             * are not in read-only file access mode.
             */
            FieldValue[] result = m_tif.GetField(TiffTag.TILEBYTECOUNTS);
            if (m_tif.IsTiled() && result != null)
            {
                byte_counts = result[0].ToIntArray();
                if (byte_counts != null)
                    data_is_empty = byte_counts[0] == 0;
            }

            result = m_tif.GetField(TiffTag.STRIPBYTECOUNTS);
            if (!m_tif.IsTiled() && result != null)
            {
                byte_counts = result[0].ToIntArray();
                if (byte_counts != null)
                    data_is_empty = byte_counts[0] == 0;
            }

            if (force_decode)
                decompress = true;
            else if (force_encode)
                decompress = false;
            else if (m_tif.m_mode == Tiff.O_RDONLY)
                decompress = true;
            else if (data_is_empty)
                decompress = false;
            else
                decompress = true;

            // Initialize LibJpeg.Net
            if (decompress)
            {
                if (!TIFFjpeg_create_decompress())
                    return false;
            }
            else
            {
                if (!TIFFjpeg_create_compress())
                    return false;
            }

            m_cinfo_initialized = true;
            return true;
        }