コード例 #1
0
        /// <summary>
        /// Saves serialized Tiny Font to stream.
        /// </summary>
        /// <param name="stream">Stream to save serialized data.</param>
        public void Save(Stream stream)
        {
            Update();

            MemoryStream serialized = new MemoryStream();

            using (BinaryWriter writer = new BinaryWriter(serialized, Encoding.UTF8))
                WriteTo(writer);

            TinyResourcesFile resources = new TinyResourcesFile();

            resources.Add(new TinyResourcesFile.Resource(TinyResourceKind.Font, serialized.ToArray()));
            resources.Save(stream);
        }
コード例 #2
0
        private TinyFont(string path)
            : this()
        {
            if (path == null)
            {
                throw new ArgumentNullException();
            }

            TinyResourcesFile resources = new TinyResourcesFile();

            using (BinaryReader reader = new BinaryReader(File.OpenRead(path), Encoding.UTF8))
                resources.ReadFrom(reader);

            TinyResourcesFile.Resource fontResource = null;
            try { fontResource = resources.Single(resource => resource.Header.Kind == TinyResourceKind.Font); }
            catch (InvalidOperationException e) { throw new ArgumentException("The resource file does not contain any font resources.", e); }

            using (BinaryReader reader = new BinaryReader(new MemoryStream(fontResource.Data)))
                ReadFrom(reader);
        }