예제 #1
0
        void Read(BinaryReader reader)
        {
            m_header = new TBHeader(reader);

            byte[] bytes = new byte[reader.BaseStream.Length - reader.BaseStream.Position];
            reader.Read(bytes, 0, bytes.Length);
            using (MemoryStream stream = new MemoryStream(bytes))
            {
                using (ZipFile zipFile = ZipFile.Read(stream))
                {
                    string tempDir = GetTempDirectory(".tilt-in");
                    foreach (var entry in zipFile.Entries)
                    {
                        entry.ExtractToFile(tempDir);
                    }

                    try
                    {
                        m_thumbnailBytes = ReadThumbnailBytes(Path.Combine(tempDir, kFileThumbnail));
                        m_brushStrokes   = ReadBrushStrokes(Path.Combine(tempDir, kFileSketchData));
                        m_metadata       = ReadMetadata(Path.Combine(tempDir, kFileMetadata));
                    }
                    finally
                    {
                        Directory.Delete(tempDir, true);
                    }
                }
            }
        }
예제 #2
0
        public TBHeader Clone()
        {
            TBHeader clone = new TBHeader();

            clone.m_sentinel      = m_sentinel;
            clone.m_headerSize    = m_headerSize;
            clone.m_headerVersion = m_headerVersion;
            clone.m_reserved1     = m_reserved1;
            clone.m_reserved2     = m_reserved2;
            return(clone);
        }