private void button5_Click(object sender, EventArgs e) // Encode
        {
            if (!OPEN)
            {
                MessageBox.Show("Please open an image");
                return;
            }

            if (!IMPULSE)
            {
                MessageBox.Show("Please click 'Impulse noise'");
                return;
            }

            if (!SEGMENTED)
            {
                MessageBox.Show("Please click 'Segment'");
                return;
            }

            if (!DETECTED)
            {
                MessageBox.Show("Please click 'Detect edges'");
                return;
            }

            List = new CListLines(200000, 200000, 2000000, CombIm.width, CombIm.height, ExtremIm.N_Bits);

            int nByte = List.SearchLin(ref CombIm, this);

            if (nByte < 0)
            {
                Application.Exit();
            }

            LiCod = new CListCode(OrigIm.width, OrigIm.height, OrigIm.N_Bits, List);

            nCode = LiCod.Transform(OrigIm.width, OrigIm.height, OrigIm.N_Bits, Palet, CombIm, List, this);

            double CompressRate = (double)(OrigIm.width * OrigIm.height * (OrigIm.N_Bits / 8)) / (double)nCode;

            MessageBox.Show("Image encoded. nLine2=" + LiCod.nLine2 + " Code length=" + nCode +
                            " bytes. Comression rate=" + Math.Round(CompressRate, 1));
            progressBar1.Visible = false;
            button6.Visible      = true;
            label7.Text          = "Click 'Restore'";
            label7.Visible       = true;
            CODED = true;
        } //**************************** end Encode ************************************************