728x90
반응형
728x170
▶ FontHelper.cs
using System;
using System.Drawing;
using System.Drawing.Text;
using System.Runtime.InteropServices;
namespace TestProject
{
/// <summary>
/// 폰트 헬퍼
/// </summary>
public static class FontHelper
{
//////////////////////////////////////////////////////////////////////////////////////////////////// Method
////////////////////////////////////////////////////////////////////////////////////////// Static
//////////////////////////////////////////////////////////////////////////////// Public
#region 폰트 패밀리 구하기 - GetFontFamily(sourceArray)
/// <summary>
/// 폰트 패밀리 구하기
/// </summary>
/// <param name="sourceArray">소스 배열</param>
/// <returns>폰트 패밀리</returns>
public static FontFamily GetFontFamily(byte[] sourceArray)
{
int sourceArrayLength = sourceArray.Length;
PrivateFontCollection privateFontCollection = new PrivateFontCollection();
IntPtr memoryHandle = Marshal.AllocHGlobal(sourceArrayLength);
if(memoryHandle == null)
{
return null;
}
Marshal.Copy(sourceArray, 0, memoryHandle, sourceArrayLength);
privateFontCollection.AddMemoryFont(memoryHandle, sourceArrayLength);
Marshal.FreeHGlobal(memoryHandle);
if(privateFontCollection.Families.Length == 0)
{
return null;
}
return privateFontCollection.Families[0];
}
#endregion
#region 폰트 구하기 - GetFont(sourceArray, fontSize, fontStyle)
/// <summary>
/// 폰트 구하기
/// </summary>
/// <param name="sourceArray">소스 배열</param>
/// <param name="fontSize">폰트 크기</param>
/// <param name="fontStyle">폰트 스타일</param>
/// <returns>폰트</returns>
public static Font GetFont(byte[] sourceArray, float fontSize, FontStyle fontStyle)
{
FontFamily fontFamily = GetFontFamily(sourceArray);
if(fontFamily == null)
{
return null;
}
Font font = new Font(fontFamily, fontSize, fontStyle);
return font;
}
#endregion
#region 폰트 구하기 - GetFont(sourceArray, fontSize)
/// <summary>
/// 폰트 구하기
/// </summary>
/// <param name="sourceArray">소스 배열</param>
/// <param name="fontSize">폰트 크기</param>
/// <returns>폰트</returns>
public static Font GetFont(byte[] sourceArray, float fontSize)
{
Font font = GetFont(sourceArray, fontSize, FontStyle.Regular);
return font;
}
#endregion
}
}
728x90
반응형
그리드형(광고전용)
'C# > WinForm' 카테고리의 다른 글
[C#/WINFORM] 마우스 자동화 하기 (0) | 2018.01.20 |
---|---|
[C#/WINFORM] Form 클래스 : InvokeOnClick 메소드를 사용해 컨트롤 클릭하기 (0) | 2018.01.20 |
[C#/WINFORM] SendMessage API를 사용해 컨트롤 클릭하기 (0) | 2018.01.20 |
[C#/WINFORM] 특수 키 상태 조사하기 (0) | 2018.01.17 |
[C#/WINFORM] 로또 컨트롤 사용하기 (0) | 2017.12.18 |
[C#/WINFORM] 바이트 배열에서 폰트 만들기 (0) | 2017.12.16 |
[C#/WINFORM] 폰트 설치 여부 구하기 (0) | 2017.11.25 |
[C#/WINFORM] 폰트 설치하기 (0) | 2017.11.23 |
[C#/WINFORM] DataGridView 클래스 : 사용자 열 순서 변경 가능하게 설정하기 (0) | 2017.10.27 |
[C#/WINFORM] DataGridView 클래스 : 사용자 행 삭제시 확인 메시지 표시하기 (0) | 2017.10.27 |
[C#/WINFORM] DataGridView 클래스 : 마우스 오른쪽 버튼을 클릭해 셀 선택하기 (0) | 2017.10.27 |
댓글을 달아 주세요