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格式。