Bits'n'picas是一组用于创建和转换位图和表情符号字体的工具。
可以使用GUI和命令行访问位图字体函数。表情符号字体函数只能从命令行访问。
启动bits'n'picas jar而无需任何参数,也没有edit命令打开位图字体编辑器GUI。
java -jar BitsNPicas.jar
java -jar BitsNPicas.jar edit
java -jar BitsNPicas.jar edit myfont.sfd
输入格式由输入文件的文件扩展确定。支持的输入格式包括:
.kbitx -bits'n'picas 2.x本机保存格式.kbits -bits'n'picas 1.x本机保存格式.sfd -fontforge(仅位图;不支持的轮廓).bdf -x11位图分布格式.psf , .psfu , .psf.gz , .psfu.gz PC屏幕字体.suit.dfont -Mac OS经典字体手提箱(在数据叉中).nfnt -Mac OS经典字体资源(在数据叉中).png -sfont或rfont,Kreative软件的Sfont扩展.png , .jpg , .jpeg , .gif , .bmp从图像创建(仅GUI).bin , .rom从二进制文件(仅GUI)创建.hex gnu unifont hex格式.cvt转换格式的Geos字体(包括巨型字体).fzx.u8m -U8/M(微型计算机的UTF -8).font amiga bitmap字体(仅黑色和白色;不支持颜色).fnt -Windows .fnt格式(与.fon ;不支持的Vector字体不同).fnt , .ftx -IBM DOS/V FONTX2格式.fnt , .mgf , .mpf -Mousepaint/MouseGraphics Toolkit字体.fnt , .rbf , .rb11 , .rb12 -rockbox字体格式.fnt , .fntz , .fnty , .cyf cybiko字体格式.fnt , .png playdate字体格式.set.hmzk -mi频段2字体格式.dsf -dosstart!丹尼尔·L·尼斯(Daniel L..sbf -SABRIEL位图字体在Mac OS X上,您还可以启动或将字体文件放在bits'n'picas应用程序上。

Bits'n'picas还可以打开字体,桌子附件和系统行李箱,并在字体,桌子附件,脚本,键盘布局和声音周围移动,就像Finder在System 7的美好时光中曾经可以做到的一样。

Geos字体也存在类似的接口。

例子:
java -jar BitsNPicas.jar convertbitmap -f ttf -o myfont.ttf myfont.sfd
这将在Fontforge文件myfont.sfd中将位图罢工转换为新的TrueType字体文件myfont.ttf中的概述。例如,如果位图打击的高度为16像素,则生成的轮廓将以16点字体的大小完美匹配像素网格。
输入格式由输入文件的文件扩展确定。支持的输入格式包括:
.kbitx -bits'n'picas 2.x本机保存格式.kbits -bits'n'picas 1.x本机保存格式.sfd -fontforge(仅位图;不支持的轮廓).bdf -x11位图分布格式.psf , .psfu , .psf.gz , .psfu.gz PC屏幕字体.suit.dfont -Mac OS经典字体手提箱(在数据叉中).nfnt -Mac OS经典字体资源(在数据叉中).png -sfont或rfont,Kreative软件的Sfont扩展.hex gnu unifont hex格式.cvt转换格式的Geos字体(包括巨型字体).fzx.u8m -U8/M(微型计算机的UTF -8).font amiga bitmap字体(仅黑色和白色;不支持颜色).fnt -Windows .fnt格式(与.fon ;不支持的Vector字体不同).fnt , .ftx -IBM DOS/V FONTX2格式.fnt , .mgf , .mpf -Mousepaint/MouseGraphics Toolkit字体.fnt , .rbf , .rb11 , .rb12 -rockbox字体格式.fnt , .fntz , .fnty , .cyf cybiko字体格式.fnt , .png playdate字体格式.set.hmzk -mi频段2字体格式.dsf -dosstart!丹尼尔·L·尼斯(Daniel L..sbf -SABRIEL位图字体输出格式由-f选项确定。支持的输出格式包括:
kbitx或kbnp2 -bits'n'picas 2.x本机保存格式kbits或kbnp1 -bits'n'picas 1.x本机保存格式ttf或truetype -TRUETYPEotb -Opentype位图bdf -x11位图分布格式psf , psf2 , psf1 , psfgz , psf2gz , psf1gz -PC屏幕字体suit -Mac OS经典字体手提箱(在资源叉中)dfont -MAC OS Classic Font手提箱(在数据叉中)nfnt -Mac OS经典字体资源(在数据叉中)png或sfont -SDL SFONTrfont -rfont,Kreative软件的Sfont扩展hex -GNU联合六角形格式cvt或geos转换格式的Geos字体(带有Mega选项)fzx -FZX作者:Andrew Owen(ZX频谱)u8m -U8/M(微型计算机的UTF -8)font或amiga Amiga位图字体(仅黑白;不支持颜色)fnt或fnt3 -Windows 3.x .fnt格式(与.fon不同)fnt2 -Windows 2.x .fnt格式(也与.fon不同)fontx2 , fontx或dosv -IBM DOS/V FONTX2格式mgtk , mgf , mpf或mousepaint -Mousepaint/MouseGraphics Toolkit字体rb12 -Rockbox字体格式2.3或更高版本rb11 -Rockbox字体格式为Rockbox 2.2或以下和iPodlinuxcybiko Cybiko字体格式playdate , playdate-allinone , playdate-fnt Playdate字体格式,多合一(单个.fnt文件)playdate-separate , playdate-fnt+png playdate font格式,单独的.fnt和.png文件hrcg或set -Apple II HI -RES角色生成器字符集hmzk -MI频段2字体格式sbf -Sabriel位图字体其他选项包括:
-s Regex -r替换- 在字体名称上执行搜索和重复位置。-b应用人造效果。-w单位-h单位- 指定EM单元中像素的宽度和高度(用于ttf格式)。-i fontid -z大小- 指定字体ID和字体大小(对于nfnt或geos格式)。您可以使用--help选项查看所有选项的列表。
sbix格式java -jar BitsNPicas.jar extractsbix AppleColorEmoji.ttf
这将从AppleColorEmoji.ttf中提取图像中的图像中的AppleColorEmoji.ttf.sbix.d目录为png文件。该目录中将有几个编号的子目录;该数字对应于内部图像的每个像素。 (这不一定与图像高度相同!)结果目录结构看起来像:
AppleColorEmoji.ttf
AppleColorEmoji.ttf.sbix.d
20
glyph_43.png
glyph_44.png
...
32
glyph_43.png
glyph_44.png
...
...
java -jar BitsNPicas.jar extractsvg EmojiOne.otf
这将从EmojiOne.otf中提取SVG图像中的EmojiOne.otf.svg.d目录为未压缩的SVG文件。 (如果将字体内的SVG数据压缩,将被解压缩。)结果目录结构将看起来像:
EmojiOne.otf
EmojiOne.otf.svg.d
glyph_2.svg
glyph_3.svg
...
CBDT / CBLC格式java -jar BitsNPicas.jar extractcbdt NotoColorEmoji.ttf
这将从NotoColorEmoji.ttf中提取PNG图像中的目录NotoColorEmoji.ttf.cbdt.d 。该目录中将有一个或多个编号的子目录;该数字仅仅是位图记录的索引,并且没有其他意义。最终的目录结构看起来像:
NotoColorEmoji.ttf
NotoColorEmoji.ttf.cbdt.d
0000
glyph_4.png
glyph_5.png
....
metadata.txt
....
fontinfo.txt
每个子目录中的metadata.txt文件列出了CBLC和CBDT表中各种数据结构的所有值。 fontinfo.txt文件仅列出了其他无关表中的其他值(因为许多字体编辑器无法使用CBDT / CBLC表打开字体,以便您找到这些值,因为缺乏glyf / loca表,则可以找到这些值)。
COLR / CPAL格式当前不支持Microsoft的COLR / CPAL格式。
要创建表情符号/彩色字体,您将需要两件事:
sbix格式java -jar BitsNPicas.jar injectsbix MyEmoji.ttf
这将获取trueType字体文件MyEmoji.ttf和目录中的图像MyEmoji.ttf.sbix.d ,并生成一个新的truetype font文件MyEmoji.ttf.sbix.ttf ,并带有嵌入在sbix表中的图像。然后,您可以根据需要重命名此文件。图像目录中每个子目录的名称必须是图像所包含的图像的每个像素。 (这不一定与图像高度与图像高度相同!)每个子目录中每个图像的文件名必须为glyph_123.png的形式(用十进制的Glyph索引)或char_ABCD.png (带有六核的Unicode代码点)。每个图像的左下位置将由TrueType字体文件中相应字形的最小X和Y坐标确定。 (对于苹果颜色表情符号,恰好设置为0,0。)
java -jar BitsNPicas.jar injectsvg MyEmoji.otf
这将在目录中的opentype字体文件MyEmoji.otf和svg images中,并在SVG表MyEmoji.otf.svg.d MyEmoji.otf.svg.otf了图像。然后,您可以根据需要重命名此文件。 The file name of each image within the image directory must be of the form glyph_123_456.svg (for a range of glyphs, with the glyph indices in decimal), glyph_123.svg (for a single glyph, with the glyph index in decimal), or char_ABCD.svg (for a single glyph, with the Unicode code point in 十六进制)。
对于映射到SVG文档的每个字形索引,该文档中必须有一个与该字形索引相对应的ID(例如,Glyph Index 123的id="glyph123" )。由于在指定图像文件名中指定代码点时可能不知道字形索引,因此您可以使用占位id="glyph{{{0}}}" ,并且在注射过程中将用适当的Glyph索引代替。
如果在字体文件名之前指定-z选项,则将使用GZIP压缩SVG数据。 Microsoft声称SVG-In-Opentype格式支持了这一点,并且具有GZIP压缩SVG字形的Emojione版本的可用性似乎可以支持这一点。但是,即使在撰写本文时,我也无法使用Gzip压缩的SVG字形字体来工作,因此我不建议这样做。
如果您想使用此格式注入一堆非SVG图像,则可以使用以下命令轻松地使用嵌入式图像生成SVG:
java -jar BitsNPicas.jar imagetosvg -x 0 -y -700 -w 800 -h 800 myimages/*.png
这将为指定的每个非SVG图像文件创建相应的SVG文件。 -x , -y , -w , -h选项指定图像在EM单元中的位置和大小。请注意,SVG Y轴从TrueType Y轴逆转,因此负Y坐标均高于基线,正Y坐标均高于基线。
CBDT / CBLC格式java -jar BitsNPicas.jar injectcbdt MyEmoji.ttf
这将在目录MyEmoji.ttf.cbdt.d中以TrueType字体文件MyEmoji.ttf和PNG图像,并生成一个新的TrueType字体文件MyEmoji.ttf.cbdt.ttf ,并在CBDT表中嵌入了图像。然后,您可以根据需要重命名此文件。每个位图大小都必须有一个子目录;子目录的名称无关紧要。每个子目录中每个图像的文件名必须为glyph_123.png的形式(带有十进制的glyph索引)或char_ABCD.png (带有unicode code点的六核代码点)。
建议每个子目录还包含一个metadata.txt文件,用于用于CBLC和CBDT表中的各种数据结构。建议至少建议以下内容:
horiAscender: *ascent in pixels (normally positive)*
horiDescender: *descent in pixels (normally negative)*
horiWidthMax: *max character width in pixels*
vertAscender: *ascent in pixels (normally positive)*
vertDescender: *descent in pixels (normally negative)*
vertWidthMax: *max character width in pixels*
ppemX: *pixels per em*
ppemY: *pixels per em*
glyph: *glyph index*
height: *image height in pixels*
width: *image width in pixels*
bearingX: *x offset in pixels*
bearingY: *y offset in pixels (positive is above the baseline)*
advance: *character width in pixels*
endGlyph
对于字形索引,您还可以使用char_ABCD (具有十六进制中的Unicode代码点)或*覆盖未指定的所有字形。与数据结构本身(各种偏移,计数和字形索引范围,以及与各种类型的索引子表相关的任何内容)相关联的字段,如果指定了指定,则将被忽略,并将自动计算。 (无论指定元数据如何
默认情况下, injectcbdt还将从字体上删除任何glyf , loca , CFF或CFF2表。要保留这些表,请在字体文件名之前指定-g选项。
COLR / CPAL格式当前不支持Microsoft的COLR / CPAL格式。