gpt4 book ai didi

c# - 在 C# 中直接从文件加载字体

转载 作者:太空狗 更新时间:2023-10-29 17:37:51 26 4
gpt4 key购买 nike

有没有办法做这样的事情?

FontFamily fontFamily = new FontFamily("C:/Projects/MyProj/free3of9.ttf");

我已经尝试了多种变体,但无法让它发挥作用。

更新:

这个有效:

PrivateFontCollection collection = new PrivateFontCollection();
collection.AddFontFile(@"C:\Projects\MyProj\free3of9.ttf");
FontFamily fontFamily = new FontFamily("Free 3 of 9", collection);
Font font = new Font(fontFamily, height);

// Use the font with DrawString, etc.

最佳答案

此示例显示如何从字节数组添加字体 - 如果字体存储在资源中。它也允许从文件添加字体。下面是我在 winforms 上使用的代码:

这有点棘手,要从文件中加载 TTF 字体,您需要这样做:

private PrivateFontCollection _privateFontCollection = new PrivateFontCollection();

public FontFamily GetFontFamilyByName(string name)
{
return _privateFontCollection.Families.FirstOrDefault(x => x.Name == name);
}

public void AddFont(string fullFileName)
{
AddFont(File.ReadAllBytes(fullFileName));
}

public void AddFont(byte[] fontBytes)
{
var handle = GCHandle.Alloc(fontBytes, GCHandleType.Pinned);
IntPtr pointer = handle.AddrOfPinnedObject();
try
{
_privateFontCollection.AddMemoryFont(pointer, fontBytes.Length);
}
finally
{
handle.Free();
}
}

关于c# - 在 C# 中直接从文件加载字体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24022411/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com