php ttc转ttf 在线,iPad字体字库与Windows字库互相转换

iPad字体字库默认的黑体字库很好看,但是在Windows下无法直接安装和查看; Windows字库也有很多很好看的,但是无法直接安装到iPad上。要想比较好的互换使用就需要进行一些必要的转换,下面对转换方法做个简单介绍:

iPad字库转Windows字库

转换工具: FontCreator。

转换方法: 菜单->Tools->Extract from TTC ,将iPad的ttc字库文件提取为Windows的ttf文件,即从iPad的TrueType字库提取出Windows字库。

例如,iPad字库 STHeiti-Light.ttc(细体)/STHeiti-Medium.ttc(中等字体),分别提取为以下文件:

[php]STHeiti-Light_0.ttf(黑体-繁 细体)

STHeiti-Light_1.ttf(黑体-简 细体)

STHeiti-Light_2.ttf(黑体-韩语 细体)

STHeiti-Light_3.ttf(黑体-日语 细体)

STHeiti-Medium_0.ttf(黑体-繁 中等)

STHeiti-Medium_1.ttf(黑体-简 中等)

STHeiti-Medium_2.ttf(黑体-韩语 中等)

STHeiti-Medium_3.ttf(黑体-日语 中等)[/php]

Windows字库转iPad字库

转换打包工具: TTCtools, 含ttfname.exe和makettc.exe。

因为iPad字库的两个TTC文件分解后会得到八个TTF文件,所以要将想转换的Windows字库也复制八份,分成2组,分别用于细体和中等字体。然后利用FontCreator修改他们的属性与从iPad解出来的字库属性一致。

打包方法:以细体为例,将按照iPad细体改好属性的4个ttf文件放入makettc.exe所在目录,然后打开命令行窗口定位到此目录,输入如下命令回车即可

[php]makettc CFont_Light.ttc 1.ttf 2.ttf 3.ttf 0.ttf [/php]

这样就合成好了iPad可用的字库文件CFont_Light.ttc,同样方法制作CFont_Medium.ttc,将这2个文件放入iPad 的/System/Library/Fonts/Cache目录,修改属性为644,然后在/System/Library/Fonts/CGFontCache.plist中增加该字库的信息即可。

Java 8 中可以使用 Font.createFont() 方法来加载 TrueType Collection (TTC) 字体文件,并通过 Font.deriveFont() 方法裁剪其中的某个字体,然后将裁剪后的字体保存到新的字体文件中。 以下是一个示例代码,演示如何从 ttc 文件中裁剪关键字字体并保存到 ttf 文件中: ```java import java.awt.Font; import java.awt.GraphicsEnvironment; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; public class FontClipper { public static void main(String[] args) { try { // 加载 TTC 字体文件 Font font = Font.createFont(Font.TRUETYPE_FONT, new File("myfont.ttc")); // 裁剪字体 Font clippedFont = font.deriveFont(24f).deriveFont(Font.PLAIN); // 创建 GraphicsEnvironment 对象 GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment(); // 注册裁剪后的字体 ge.registerFont(clippedFont); // 获取字体文件路径 String fontFilePath = clippedFont.getFontName() + ".ttf"; // 保存裁剪后的字体文件 FileOutputStream fos = new FileOutputStream(fontFilePath); clippedFont.deriveFont(Font.PLAIN).createGlyphVector(fos, "Test").getFont().createFont(Font.TRUETYPE_FONT, fos); fos.close(); System.out.println("已保存裁剪后的字体文件:" + fontFilePath); } catch (FontFormatException | IOException e) { e.printStackTrace(); } } } ``` 在上面的代码中,我们首先加载 ttc 字体文件,然后使用 Font.deriveFont() 方法裁剪字体。接着,我们创建 GraphicsEnvironment 对象并注册裁剪后的字体。 然后,我们使用裁剪后的字体创建一个新的字体文件(ttf),并将其保存到磁盘上。最后,我们输出保存的字体文件路径。 需要注意的是,保存新字体文件时,需要使用字体中包含的字符来创建 GlyphVector。在上面的示例中,我们使用 "Test" 字符串。如果要保存的字体不包含任何字符,可以使用空字符串作为参数。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值