Index: Core/Common/src/Core.Common.Util/Drawing/FontHelper.cs
===================================================================
diff -u -r8a2cd31955ec28ee203d506300caa6a89cddb897 -r2d7021057869098254eacbaa264622956f49a870
--- Core/Common/src/Core.Common.Util/Drawing/FontHelper.cs (.../FontHelper.cs) (revision 8a2cd31955ec28ee203d506300caa6a89cddb897)
+++ Core/Common/src/Core.Common.Util/Drawing/FontHelper.cs (.../FontHelper.cs) (revision 2d7021057869098254eacbaa264622956f49a870)
@@ -21,6 +21,7 @@
using System;
using System.Drawing;
+using System.Drawing.Drawing2D;
using System.Drawing.Text;
using System.Linq;
using System.Runtime.InteropServices;
@@ -63,6 +64,37 @@
return new Font(privateFontCollection.Families.Last(), 14.0F);
}
+ ///
+ /// Creates a from the given and .
+ ///
+ /// The font to use.
+ /// The unicode to create an image from.
+ /// A .
+ /// Thrown when any parameter is null.
+ public static Bitmap CreateBitmapFromFont(Font font, string unicode)
+ {
+ if (font == null)
+ {
+ throw new ArgumentNullException(nameof(font));
+ }
+
+ if (unicode == null)
+ {
+ throw new ArgumentNullException(nameof(unicode));
+ }
+
+ var bitmap = new Bitmap(51, 51);
+ Graphics graphics = Graphics.FromImage(bitmap);
+
+ graphics.SmoothingMode = SmoothingMode.HighQuality;
+ graphics.InterpolationMode = InterpolationMode.HighQualityBicubic;
+ graphics.PixelOffsetMode = PixelOffsetMode.HighQuality;
+ graphics.DrawString(unicode, new Font(font.FontFamily, 48, GraphicsUnit.Pixel), Brushes.Black, 0, 0);
+ graphics.Flush();
+
+ return bitmap;
+ }
+
[DllImport("gdi32.dll")]
private static extern IntPtr AddFontMemResourceEx(IntPtr pbFont, uint cbFont,
IntPtr pdv, [In] ref uint pcFonts);
Index: Core/Common/test/Core.Common.Util.Test/Drawing/FontHelperTest.cs
===================================================================
diff -u -r8a2cd31955ec28ee203d506300caa6a89cddb897 -r2d7021057869098254eacbaa264622956f49a870
--- Core/Common/test/Core.Common.Util.Test/Drawing/FontHelperTest.cs (.../FontHelperTest.cs) (revision 8a2cd31955ec28ee203d506300caa6a89cddb897)
+++ Core/Common/test/Core.Common.Util.Test/Drawing/FontHelperTest.cs (.../FontHelperTest.cs) (revision 2d7021057869098254eacbaa264622956f49a870)
@@ -67,5 +67,46 @@
var exception = Assert.Throws(Call);
Assert.AreEqual("privateFontCollection", exception.ParamName);
}
+
+ [Test]
+ public void CreateBitmapFromFont_FontNull_ThrowsArgumentNullException()
+ {
+ // Call
+ void Call() => FontHelper.CreateBitmapFromFont(null, "");
+
+ // Assert
+ var exception = Assert.Throws(Call);
+ Assert.AreEqual("font", exception.ParamName);
+ }
+
+ [Test]
+ public void CreateBitmapFromFont_UnicodeNull_ThrowsArgumentNullException()
+ {
+ // Setup
+ var privateFontCollection = new PrivateFontCollection();
+ Font font = FontHelper.CreateFont(Resources.ValidFont, privateFontCollection);
+
+ // Call
+ void Call() => FontHelper.CreateBitmapFromFont(font, null);
+
+ // Assert
+ var exception = Assert.Throws(Call);
+ Assert.AreEqual("unicode", exception.ParamName);
+ }
+
+ [Test]
+ public void CreateBitmapFromFont_ValidData_CreatesExpectedBitmap()
+ {
+ // Setup
+ var privateFontCollection = new PrivateFontCollection();
+ Font font = FontHelper.CreateFont(Resources.ValidFont, privateFontCollection);
+
+ // Call
+ Bitmap bitmap = FontHelper.CreateBitmapFromFont(font, "I");
+
+ // Assert
+ Assert.AreEqual(51, bitmap.Height);
+ Assert.AreEqual(51, bitmap.Width);
+ }
}
}
\ No newline at end of file