public void TextConstraintsMetWithScalingEnabled(int width, int height, string text) { var originalFont = MemeFonts.GetDefaultFont(); var renderer = new TextInputRenderer(originalFont, null, Brushes.Solid(Rgba32.Black), HorizontalAlignment.Center, VerticalAlignment.Center, false); renderer.GetAdjustedFont(width, height, text); }
public void ImpossibleTextConstraintsThrowsArgumentException(int width, int height, string text) { var originalFont = MemeFonts.GetDefaultFont(); var renderer = new TextInputRenderer(originalFont, null, Brushes.Solid(Rgba32.Black), HorizontalAlignment.Center, VerticalAlignment.Center, false); Assert.Throws <ArgumentException>(() => renderer.GetAdjustedFont(width, height, text)); }
public void TextRenderingWithinBoundaries(int width, int height, string text) { var margin = 20; using (var canvas = new Image <Rgba32>(width + 2 * margin, height + 2 * margin)) { var font = MemeFonts.GetDefaultFont(); var renderer = new TextInputRenderer(font, null, Brushes.Solid(Rgba32.Black), HorizontalAlignment.Center, VerticalAlignment.Center, false); var renderArea = new Rectangle(margin, margin, width, height); canvas.Mutate(ctx => { ctx.Fill(Rgba32.AliceBlue); renderer.Render(ctx, renderArea, text); }); for (var y = 0; y < canvas.Height; y++) { for (var x = 0; x < margin; x++) { Assert.True(canvas[x, y] == Rgba32.AliceBlue, $"Text was rendered outside the drawing canvas at ({x}, {y})"); } if (y < margin || y >= canvas.Height - margin) { for (var x = margin; x < canvas.Width - margin; x++) { Assert.True(canvas[x, y] == Rgba32.AliceBlue, $"Text was rendered outside the drawing canvas at ({x}, {y})"); } } for (var x = canvas.Width - margin; x < canvas.Width; x++) { Assert.True(canvas[x, y] == Rgba32.AliceBlue, $"Text was rendered outside the drawing canvas at ({x}, {y})"); } } } }
public static MemeTemplate LoadComaMemeTemplate() { var font = new Font(MemeFonts.GetDefaultFont(), 36); var textRenderer = new TextInputRenderer(font, null, Brushes.Solid(Rgba32.Black), HorizontalAlignment.Center, VerticalAlignment.Center, true); var nurseText = new InputFieldBuilder() .WithName("Nurse", "Sir, you've been in a coma for...") .WithVertices(new Point(145, 73), new Point(715, 73), new Point(145, 147), new Point(715, 147)) .WithRenderer(textRenderer) .WithPadding(0.03) .Build(); var patientText = new InputFieldBuilder() .WithName("Patient response", "Oh boy, I can't wait to...") .WithVertices(new Point(158, 150), new Point(725, 150), new Point(158, 260), new Point(725, 260)) .WithRenderer(textRenderer) .WithPadding(0.03) .Build(); return(new MemeTemplateBuilder("Images/MemeTemplates/Coma.jpg") .WithName("Coma") .WithDescription("Sir, you've been in a coma for...") .WithInputField(nurseText) .WithInputField(patientText) .Build()); }
public void ScalingPerformedForLongTextWhenPreferringNoScaling(int width, int height, string text) { var originalFont = new Font(MemeFonts.GetDefaultFont(), 5); var renderer = new TextInputRenderer(originalFont, null, Brushes.Solid(Rgba32.Black), HorizontalAlignment.Center, VerticalAlignment.Center, true); var newFont = renderer.GetAdjustedFont(width, height, text); Assert.True(originalFont.Size > newFont.Size); }
private static MemeTemplate GetMemeTemplate() { var font = MemeFonts.GetDefaultFont(); var textRenderer = new TextInputRenderer(font, Pens.Dash <Rgba32>(Rgba32.Black, 1), Brushes.Solid(Rgba32.Black), HorizontalAlignment.Center, VerticalAlignment.Center, false); var disappointment = new InputFieldBuilder() .WithName("Baby") .WithVertices(new Point(115, 720), new Point(584, 720), new Point(115, 884), new Point(584, 884)) .WithRenderer(textRenderer) .WithPadding(0.03) .Build(); return(new MemeTemplateBuilder("TestData/Disappointment.png") .WithName("Disappointment") .WithDescription("Free disappointment") .WithInputField(disappointment) .Build()); }
public static TextInputRenderer GetDefaultTextInputRenderer() { var font = MemeFonts.GetDefaultFont(); return(new TextInputRenderer(font, null, Brushes.Solid(Rgba32.Black), HorizontalAlignment.Center, VerticalAlignment.Center, false)); }