/// <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); }
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); }