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