Exemplo n.º 1
0
        private static void SaveFont(FfntFile ffntFile, string fileName, string outputPath)
        {
            XmlSerializer serializer = new XmlSerializer(typeof(FfntFile), new[] { typeof(GlyphMap), typeof(FontData) });

            string outputFilePath = Path.Combine(outputPath, fileName + ".xml");

            using (var outputStream = new FileStream(outputFilePath, FileMode.Create))
            {
                serializer.Serialize(outputStream, ffntFile);
            }
        }
Exemplo n.º 2
0
        private static void PackFfnt(string path, string fileName, string outputPath)
        {
            string outputFilePath = Path.Combine(outputPath, fileName + ".ffnt");

            using (FileStream fontInputStream = new FileStream(path, FileMode.Open))
                using (FileStream outputStream = new FileStream(outputFilePath, FileMode.Create))
                {
                    XmlSerializer serializer = new XmlSerializer(typeof(FfntFile),
                                                                 new[] { typeof(GlyphMap), typeof(FontData) });


                    FfntFile ffntFile = serializer.Deserialize(fontInputStream) as FfntFile;
                    if (ffntFile != null)
                    {
                        ffntFile.Entries.OfType <FontData>().Single().Data = ReadFontLayers(Path.GetDirectoryName(path),
                                                                                            fileName);
                        ffntFile.Write(outputStream);
                    }
                }
        }
        private static void UnpackFfnt(string path, string fileName, string outputPath)
        {
            using (FileStream inputStream = new FileStream(path, FileMode.Open))
            {
                FfntFile ffntFile = FfntFile.ReadFfntFile(inputStream);

                if (ffntFile.Entries.Count != 2)
                {
                    return;
                }

                GlyphMap glyphMap = ffntFile.Entries.ElementAt(0) as GlyphMap;
                FontData fontData = ffntFile.Entries.ElementAt(1) as FontData;

                if (glyphMap == null || fontData == null)
                {
                    return;
                }

                SaveFont(ffntFile, fileName, outputPath);
                SaveFontLayers(fontData.Data, fileName, outputPath);
            }
        }