Example #1
0
        static void Main(string[] args)
        {
            Console.WriteLine("\t\t\t\t\t\t\t- LAB 4 -\n\nKevin Romero 1047519\nJosé De León 1072619");
            LZW lzw = new LZW();

            string original = "Tu trabajo va a llenar gran parte de tu vida, la única manera de estar realmente satisfecho es hacer lo que creas es un gran trabajo y la única manera de hacerlo es amar lo que haces. Si no lo has encontrado aún, sigue buscando. Como con todo lo que tiene que ver con el corazón, sabrás cuando lo hayas encontrado. -Steve Jobs";

            Console.WriteLine("\n\nTEXTO ORIGINAL          \n" + original);

            byte[] compression_result = lzw.EncodeData(ConvertToByte(original));
            Console.WriteLine("\n\nTEXTO COMPRIMIDO");
            Console.WriteLine(ConvertToChar(compression_result));

            double compression_factor   = lzw.CompressionFactor();
            double compression_ratio    = lzw.CompressionRatio();
            double reduction_percentage = lzw.ReductionPercentage();


            lzw = new LZW();
            byte[] descompression_result = lzw.DecodeData(compression_result);
            Console.WriteLine("\n\nTEXTO DESCOMPRIMIDO");
            Console.WriteLine(ConvertToChar(descompression_result));

            Console.WriteLine("\n\n\t\tFACTOR DE COMPRESIÓN\t\tRAZÓN DE COMPRESIÓN\t\tPORCENTAJE DE REDUCCIÓN");
            Console.WriteLine("\t\t" + compression_factor + "\t\t" + compression_ratio + "\t\t" + reduction_percentage);


            Console.ReadLine();
        }
        public void CompressFile(string path, string originalName)
        {
            LZW lZW = new LZW();

            byte[] buffer;
            using (FileStream fs = new FileStream(path, FileMode.OpenOrCreate))
            {
                buffer = new byte[fs.Length];
                using (var br = new BinaryReader(fs))
                {
                    br.Read(buffer, 0, (int)fs.Length);
                }
            }

            byte[] result = lzw.EncodeData(buffer);

            for (int i = 1; File.Exists(CompressedFilePath); i++)
            {
                var split = CompressedFileName.Split(".lzw");
                if (split[0].Contains("("))
                {
                    var split2 = split[0].Split("(");
                    CompressedFileName = split2[0] + "(" + i + ")" + ".lzw";
                }
                else
                {
                    CompressedFileName = split[0] + "(" + i + ")" + ".lzw";
                }

                split = CompressedFilePath.Split("compressions");
                CompressedFilePath = split[0] + "compressions\\" + CompressedFileName;
            }
            byte[] nombre = Encoding.ASCII.GetBytes(originalName.PadRight(200, '\0').ToArray());
            using (var fs = new FileStream(CompressedFilePath, FileMode.OpenOrCreate))
            {
                fs.Write(nombre, 0, 200);
                fs.Seek(200, SeekOrigin.Begin);
                fs.Write(result, 0, result.Length);
            }
            CompressionRatio    = lzw.CompressionRatio();
            CompressionFactor   = lzw.CompressionFactor();
            ReductionPercentage = lzw.ReductionPercentage();
        }
Example #3
0
        public void CompressFile(string path)
        {
            LZW lZW = new LZW();

            byte[] buffer;
            using (FileStream fs = new FileStream(path, FileMode.OpenOrCreate))
            {
                buffer = new byte[fs.Length];
                using (var br = new BinaryReader(fs))
                {
                    br.Read(buffer, 0, (int)fs.Length);
                }
            }

            byte[] result = lzw.EncodeData(buffer);

            for (int i = 1; File.Exists(CompressedFilePath); i++)
            {
                var split = CompressedFileName.Split(".lzw");
                if (split[0].Contains("("))
                {
                    var split2 = split[0].Split("(");
                    CompressedFileName = split2[0] + "(" + i + ")" + ".lzw";
                }
                else
                {
                    CompressedFileName = split[0] + "(" + i + ")" + ".lzw";
                }

                split = CompressedFilePath.Split("compressions");
                CompressedFilePath = split[0] + "compressions\\" + CompressedFileName;
            }

            using (var fs = new FileStream(CompressedFilePath, FileMode.OpenOrCreate))
            {
                fs.Write(result, 0, result.Length);
            }
            CompressionRatio    = lzw.CompressionRatio();
            CompressionFactor   = lzw.CompressionFactor();
            ReductionPercentage = lzw.ReductionPercentage();
        }