Ejemplo n.º 1
0
        /// <summary>
        /// Creates new instance of Tiny Font from resources.
        /// </summary>
        /// <param name="resource">Resource containing seralized data from tinyfnt file.</param>
        public TinyFont(TinyResourcesFile.Resource resource)
            : this()
        {
            if (resource == null)
            {
                throw new ArgumentNullException();
            }
            if (resource.Header.Kind != TinyResourceKind.Font)
            {
                throw new ArgumentException();
            }
            if (resource.Data == null)
            {
                throw new ArgumentException();
            }

            using (BinaryReader reader = new BinaryReader(new MemoryStream(resource.Data)))
                ReadFrom(reader);
        }
Ejemplo n.º 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);
        }