コード例 #1
0
        public static LongHorizontalMetric Read(BinaryReader reader)
        {
            var instance = new LongHorizontalMetric
            {
                AdvanceWidth = reader.ReadUInt16BigEndian(),
                Lsb          = reader.ReadInt16BigEndian()
            };

            return(instance);
        }
コード例 #2
0
        public static HorizontalMetricsTable Read(BinaryReader reader, int numberOfHMetrics, int numGlyphs)
        {
            var instance = new HorizontalMetricsTable
            {
                HMetrics = new LongHorizontalMetric[numberOfHMetrics]
            };

            for (int i = 0; i < numberOfHMetrics; i++)
            {
                instance.HMetrics[i] = LongHorizontalMetric.Read(reader);
            }

            var lsbCount = numGlyphs - numberOfHMetrics;

            instance.LeftSideBearings = new short[lsbCount];
            for (int i = 0; i < lsbCount; i++)
            {
                instance.LeftSideBearings[i] = reader.ReadInt16BigEndian();
            }

            return(instance);
        }