FontHelper.cs 1.2 KB

1234567891011121314151617181920212223242526272829303132
  1. using System;
  2. using System.Drawing;
  3. using System.Drawing.Text;
  4. namespace Optimizer
  5. {
  6. internal static class FontHelper
  7. {
  8. [System.Runtime.InteropServices.DllImport("gdi32.dll")]
  9. private static extern IntPtr AddFontMemResourceEx(IntPtr pbFont, uint cbFont,
  10. IntPtr pdv, [System.Runtime.InteropServices.In] ref uint pcFonts);
  11. static PrivateFontCollection fonts = new PrivateFontCollection();
  12. internal static Font Poppins15;
  13. internal static void LoadFont()
  14. {
  15. byte[] fontData = Properties.Resources.Poppins_Regular;
  16. IntPtr fontPtr = System.Runtime.InteropServices.Marshal.AllocCoTaskMem(fontData.Length);
  17. System.Runtime.InteropServices.Marshal.Copy(fontData, 0, fontPtr, fontData.Length);
  18. uint dummy = 0;
  19. fonts.AddMemoryFont(fontPtr, Properties.Resources.Poppins_Regular.Length);
  20. AddFontMemResourceEx(fontPtr, (uint)Properties.Resources.Poppins_Regular.Length, IntPtr.Zero, ref dummy);
  21. System.Runtime.InteropServices.Marshal.FreeCoTaskMem(fontPtr);
  22. Poppins15 = new Font(fonts.Families[0], 13f);
  23. }
  24. }
  25. }