public void PutNextRectangleF_FirstRectangle_PutToCenter(int centerX, int centerY) { A.CallTo(() => settings.CenterX) .Returns(centerX); A.CallTo(() => settings.CenterY) .Returns(centerY); var expected = new RectangleF(centerX + imageWidth / 2f, centerY + imageHeight / 2f, defaultRectangle.Width, defaultRectangle.Height); cloudLayouter.PutNextRectangleF(defaultRectangle) .Should() .BeEquivalentTo(expected); }
public Result <byte[]> Visualize(IEnumerable <ITag> tags) { var brush = new SolidBrush(settings.Color); using (var bmp = new Bitmap(settings.ImageWidth, settings.ImageHeight)) using (var g = Graphics.FromImage(bmp)) { g.TextRenderingHint = TextRenderingHint.AntiAlias; foreach (var word in tags) { var wordSize = g.MeasureString(word.Value, word.Font); var wordPosition = layouter.PutNextRectangleF(wordSize); if (IsOutsideImage(wordPosition)) { return(Result.Fail <byte[]>( $"Tag cloud does not fit the image size of {settings.ImageWidth}x{settings.ImageHeight}")); } g.DrawString(word.Value, word.Font, brush, wordPosition); } return(Result.Ok(bmp.ToByteArray(settings.ImageFormat))); } }
public byte[] Visualize(IEnumerable <ITag> tags) { var brush = new SolidBrush(settings.Color); using (var bmp = new Bitmap(settings.ImageWidth, settings.ImageHeight)) using (var g = Graphics.FromImage(bmp)) { g.TextRenderingHint = TextRenderingHint.AntiAlias; foreach (var word in tags) { var wordSize = g.MeasureString(word.Value, word.Font); var wordPosition = layouter.PutNextRectangleF(wordSize); g.DrawString(word.Value, word.Font, brush, wordPosition); } return(bmp.ToByteArray(settings.ImageFormat)); } }