Example #1
0
        //GIF files use LSB-First packing order so I have to account for this.
        private void DecryptImageData(string stream)
        {
            string builder3 = "";
            string builder  = "";
            string number   = "";
            string binary   = GifHelper.HexToBinary(stream);
            string binary2  = "";
            int    pixel    = 0;

            for (int i = 0; i < binary.Length - LZWCompressionSize; i += LZWCompressionSize)
            {
                number   = Convert.ToInt32(binary.Substring(i, LZWCompressionSize), 2).ToString();
                binary2 += binary.Substring(i, 8) + ", ";
                builder += number + ", ";
                pixel++;
            }

            for (int i = 0; i < stream.Length - 2; i += 2)
            {
                builder3 += stream.Substring(i, 2) + " ";
            }

            Debug.Log("EST PIXELS: " + pixel);
            Debug.Log("IMAGE DATA SUBBLOCK 1 DATA: " + builder3);
            Debug.Log("IMAGE BLOCK BINARY: " + binary2);
            Debug.Log("IMAGE DATA DECRYPTED: " + builder);
        }
 private void packetFieldDecrypt(string input)
 {
     string packetField = GifHelper.HexToBinary(input);
     LocalColorTableFlag = packetField.Substring(0, 1) == "1";
     InterlaceFlag = packetField.Substring(1, 1) == "1";
     SortFlag = packetField.Substring(2, 1) =="1";
     ResevedForFutureUse = packetField.Substring(3, 2);
     LocalColorTableSize = GifHelper.HexToDecimal(packetField.Substring(5, 3));
 }
        private void PacketField(string packetField)
        {
            packetField = GifHelper.HexToBinary(packetField);
            //Debug.LogWarning("GCE PACKET FIELD BINARY: " + packetField);

            FutureUse      = GifHelper.HexToDecimal(packetField.Substring(0, 3));
            DisposalMethod = GifHelper.HexToDecimal(packetField.Substring(3, 3));

            UserInput       = packetField.Substring(6, 1) == "1";
            HasTransparency = packetField.Substring(7, 1) == "1";
        }
        private void DecodePacketField(string packetField)
        {
            //Debug.LogError("LOGICAL DESCRIPTOR PACKETFIELD: " + packetField);
            string binary = GifHelper.HexToBinary(packetField);

            HasGlobalColorTable      = binary.Substring(0, 1) == "1";
            IsGlobalColorTableSorted = binary.Substring(4, 1) == "1";

            long resolution = Convert.ToInt64(binary.Substring(1, 3), 2);

            ColorResolution = (int)resolution + 1;

            long size = Convert.ToInt64(binary.Substring(5, 3), 2);

            GlobalColorTableSize = (int)(Mathf.Pow(2, size + 1) * 3);
            //Debug.LogError("Global Color Table Size: " + GlobalColorTableSize);
        }
        public void Set(string stream)
        {
            Debug.Log("GRAPHICS CONTROL EXTENSION: " + stream);
            ErrorCheck(stream);

            string size = stream.Substring(4, 2);

            size      = GifHelper.HexToBinary(size);
            BlockSize = (int)Convert.ToInt64(size, 2);

            string packetField = stream.Substring(6, 2);

            PacketField(packetField);

            string delay = stream.Substring(8, 4);

            Delay = GifHelper.HexToDecimal(delay);

            string transparentIndex = stream.Substring(12, 2);

            TransparencyIndex = GifHelper.HexToDecimal(transparentIndex);
            //Debug.LogWarning("GCE TRANSPARENCY INDEX: " + TransparencyIndex);
        }