コード例 #1
0
ファイル: FontFactory.cs プロジェクト: vpenades/UberFactory
        public static void DrawGlypth(this Image <Rgba32> target, SixLabors.Fonts.RendererOptions options, int x, int y, char character)
        {
            var origin = new PointF(x, y);

            // origin += new SizeF(0.5f, 0.5f);

            var path = options
                       .GetCharacterGlypth(character)
                       .Translate(origin);

            target.Mutate(dc => dc.Fill(Rgba32.White, path));
        }
コード例 #2
0
ファイル: FontFactory.cs プロジェクト: vpenades/UberFactory
        // https://github.com/SixLabors/Fonts/issues/57

        public static RectangleF GetGlypthMaxBounds(this SixLabors.Fonts.RendererOptions options, params char[] characters)
        {
            var rect = new SixLabors.Primitives.RectangleF(float.PositiveInfinity, float.PositiveInfinity, float.NegativeInfinity, float.NegativeInfinity);

            foreach (var c in characters)
            {
                var r = options.GetCharacterGlypth(c).Bounds;

                rect = rect.IsInitialized() ? rect.UnionWith(r) : r;
            }

            return(rect);
        }
コード例 #3
0
ファイル: Image.Fonts.cs プロジェクト: vpenades/UberFactory
        private static void _DrawGlyph(Image <Rgba32> dstImage, Size cellSize, Size padding, SixLabors.Fonts.RendererOptions context, char c)
        {
            var x = ((int)c) % 16;
            var y = ((int)c) / 16;

            x *= cellSize.Width;
            y *= cellSize.Height;

            x += padding.Width;
            y += padding.Height;

            var glyph  = context.GetCharacterGlypth(c);
            var bounds = glyph.Bounds;

            dstImage.DrawGlypth(context, x, y, c);
        }