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 -Mac OSクラシックフォントスーツケース(リソースフォーク).dfont -Mac OSクラシックフォントスーツケース(データフォーク内).nfnt -mac osクラシックフォントリソース(データフォーク内).png -sfontまたはrfont、Kreativeソフトウェアのsfontの拡張.png 、 .jpg 、 .jpeg 、 .gif 、 .bmp -from image(guiのみ).bin 、 .romバイナリファイルから作成(guiのみ).hex -gnu unifont hex形式.cvt -geosフォント変換形式(メガフォントを含む).fzx -FZX by Andrew Owen(ZX Spectrum用).u8m -u8/m(マイクロコンピューター用のUTF -8).font -amiga Bitmapフォント(黒と白のみ;カラーはサポートされていません).fnt -windows .fnt形式( .fonと同じではありません;ベクトルフォントはサポートされていません).fnt 、 .ftx -ibm dos/v fontx2形式.fnt 、 .mgf 、 .mpf -mousepaint/mousegraphicsツールキットフォント.fnt 、 .rbf 、 .rb11 、 .rb12ロックボックスフォント形式.fnt 、 .fntz 、 .fnty 、 .cyf -cybiko font形式.fnt 、 .png -playdateフォント形式.set -Apple II hi -res文字ジェネレーター文字セット.hmzk -mi band 2フォント形式.dsf -dosstart!ダニエル・L・ニース.sbf -Sabriel BitMapフォントMac OS Xでは、bits'n'picasアプリケーションにフォントファイルを起動またはドロップすることもできます。

Bits'n'picasは、フォント、デスクアクセサリ、システムスーツケースを開き、フォント、デスクアクセサリー、スクリプト、キーボードレイアウト、サウンドを移動することもできます。

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 -Mac OSクラシックフォントスーツケース(リソースフォーク).dfont -Mac OSクラシックフォントスーツケース(データフォーク内).nfnt -mac osクラシックフォントリソース(データフォーク内).png -sfontまたはrfont、Kreativeソフトウェアのsfontの拡張.hex -gnu unifont hex形式.cvt -geosフォント変換形式(メガフォントを含む).fzx -FZX by Andrew Owen(ZX Spectrum用).u8m -u8/m(マイクロコンピューター用のUTF -8).font -amiga Bitmapフォント(黒と白のみ;カラーはサポートされていません).fnt -windows .fnt形式( .fonと同じではありません;ベクトルフォントはサポートされていません).fnt 、 .ftx -ibm dos/v fontx2形式.fnt 、 .mgf 、 .mpf -mousepaint/mousegraphicsツールキットフォント.fnt 、 .rbf 、 .rb11 、 .rb12ロックボックスフォント形式.fnt 、 .fntz 、 .fnty 、 .cyf -cybiko font形式.fnt 、 .png -playdateフォント形式.set -Apple II hi -res文字ジェネレーター文字セット.hmzk -mi band 2フォント形式.dsf -dosstart!ダニエル・L・ニース.sbf -Sabriel BitMapフォント出力形式は、 -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クラシックフォントスーツケース(データフォーク内)nfnt -Mac OSクラシックフォントリソース(データフォーク内)pngまたはsfont -SDL SFONTrfont -rfont、Kreative SoftwareのSfontの拡張hex -gnu unifont hex形式cvtまたはgeos -GEOSフォントの変換形式(MEGAオプション付き)fzx -FZX by Andrew Owen(ZX Spectrum用)u8m -U8/M(マイクロコンピューター用のUTF -8)fontまたはamiga -Amigaビットマップフォント(黒と白のみ;カラーはサポートされていません)fntまたはfnt3 -windows 3.x .fnt形式( .fonと同じではない)fnt2 -windows2.x .fnt形式( .fonと同じではありません)fontx2 、 fontx 、またはdosv -ibm dos/v fontx2形式mgtk 、 mgf 、 mpf 、またはmousepaint -MousePaint/MouseGraphicsツールキットフォントrb12ロックボックス2.3以上のロックボックスフォント形式rb11ロックボックス2.2以下およびiPodlinuxのロックボックスフォント形式cybiko -Cybikoフォント形式playdate 、 playdate-allinone 、 playdate-fnt -Playdateフォント形式、オールインワン(シングル.fntファイル)playdate-separate 、 playdate-fnt+png -playdateフォント形式、個別の.fntおよび.pngファイルhrcgまたはset -Apple II高解像度の文字ジェネレーター文字セットhmzk -MIバンド2フォント形式sbf -Sabriel BitMapフォント追加のオプションは次のとおりです。
-s regex -r交換- フォント名で検索とレプレースを実行します。-bフェイクボールド効果を適用します。-wユニット-hユニット- EMユニットのピクセルの幅と高さ( ttf形式の場合)を指定します。-i fontid -zサイズ- フォントIDとフォントサイズ( nfntまたはgeos形式の場合)を指定します。 --helpオプションを使用して、すべてのオプションのリストを表示できます。
sbix形式を使用した例java -jar BitsNPicas.jar extractsbix AppleColorEmoji.ttf
これにより、PNGファイルとしてAppleColorEmoji.ttfの画像がディレクトリAppleColorEmoji.ttf.sbix.dに抽出されます。このディレクトリ内には、いくつかの数字のサブディレクトリがあります。数値は、内部の画像のEMあたりのピクセルに対応します。 (これは必ずしも画像の高さと同じではありません!)結果のディレクトリ構造は次のようになります。
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に抽出されます。このディレクトリには、1つ以上の数字のサブディレクトリがあります。数字は、単にBitMapsizeレコードのインデックスであり、他の重要性はありません。結果のディレクトリ構造は次のようになります。
NotoColorEmoji.ttf
NotoColorEmoji.ttf.cbdt.d
0000
glyph_4.png
glyph_5.png
....
metadata.txt
....
fontinfo.txt
各サブディレクトリ内のmetadata.txtファイルは、 CBLCおよびCBDTテーブル内のさまざまなデータ構造のすべての値をリストします。 fontinfo.txtファイルは、便利なために他の無関係なテーブルの他の値をリストするだけです(多くのフォントエディターは、 glyf / locaテーブルがないためにこれらの値を見つけるためにCBDT / CBLCテーブルを備えたフォントを開くことができないため)。
COLR / CPAL形式MicrosoftのCOLR / CPAL形式は現在サポートされていません。
絵文字/カラーフォントを作成するには、次の2つのことが必要です。
sbix形式を使用した例java -jar BitsNPicas.jar injectsbix MyEmoji.ttf
これにより、TrueTypeフォントファイルMyEmoji.ttfとディレクトリMyEmoji.ttf.sbix.dの画像を使用し、 sbixテーブルに埋め込まれた画像を備えた新しいTrueTypeフォントファイルMyEmoji.ttf.sbix.ttfを生成します。その後、必要に応じてこのファイルの名前を変更できます。画像ディレクトリ内の各サブディレクトリの名前は、含まれる画像のemあたりのピクセルでなければなりません。 (これは必ずしも画像の高さと同じではありません!)各サブディレクトリ内の各画像のファイル名は、 glyph_123.png (小数点以下のGlyphインデックスを使用)またはchar_ABCD.png (16進数のユニコードコードポイントを使用)でなければなりません。各画像の左下の位置は、TrueTypeフォントファイルの対応するグリフの最小xおよびy座標によって決定されます。 (アップルカラーの絵文字の場合、これはたまたま0,0に設定されています。)
java -jar BitsNPicas.jar injectsvg MyEmoji.otf
これにより、opentypeフォントファイルMyEmoji.otfとディレクトリMyEmoji.otf.svg.dのsvg画像を使用し、 SVGテーブルに埋め込まれた画像を備えた新しいopentype fontファイルMyEmoji.otf.svg.otfを生成します。その後、必要に応じてこのファイルの名前を変更できます。画像ディレクトリ内の各画像のファイル名は、 glyph_123_456.svg (glyphの範囲、小数点以下のGlyphインデックスの場合)、 glyph_123.svg (単一のglyphの場合、小数のGlyphインデックスを含む)、またはchar_ABCD.svg (1つのglyphの場合)(単一のglyphの場合)である必要があります。
SVGドキュメントにマッピングされた各GLYPHインデックスについて、そのドキュメントには、そのGLYPHインデックスに対応するID(GLYPHインデックス123のid="glyph123" )を持つ要素がある必要があります。画像ファイル名のコードポイントを指定するときにGLYPHインデックスがわからない場合があるため、プレースホルダーid="glyph{{{0}}}"使用でき、注入プロセス中に適切なGLYPHインデックスに置き換えられます。
フォントファイル名の前に-zオプションを指定すると、GZIPを使用してSVGデータが圧縮されます。 Microsoftは、SVG-in-opentype形式がこれをサポートしていると主張しており、GZIPが圧縮されたSVGグリフを使用した絵文字のバージョンの可用性はこれをバックアップしているようです。しかし、この執筆時点では、Firefoxの最新バージョンでも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
これにより、Directory MyEmoji.ttf.cbdt.dのTrueTypeフォントファイルMyEmoji.ttfとPNG画像が取得され、 CBDTテーブルに埋め込まれた画像を備えた新しいTrueTypeフォントファイルMyEmoji.ttf.cbdt.ttfが生成されます。その後、必要に応じてこのファイルの名前を変更できます。ビットマップサイズごとにサブディレクトリが必要です。サブディレクトリの名前は重要ではありません。各サブディレクトリ内の各画像のファイル名は、 glyph_123.png (小数点のグリフインデックスを含む)またはchar_ABCD.png (16進数のユニコードコードポイントを使用)の形式でなければなりません。
各サブディレクトリがCBLCおよびCBDTテーブル内のさまざまなデータ構造に使用する値のmetadata.txtファイルも含めることをお勧めします。以下は少なくとも推奨されます。
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
GLYPHインデックスの場合、 char_ABCD (HexadecimalのUnicodeコードポイントを使用)または*を使用して、他には指定されていないすべてのGlyphをカバーすることもできます。データ構造自体に関連付けられたフィールド(さまざまなオフセット、カウント、およびGLYPHインデックス範囲、およびさまざまなタイプのインデックスサブテーブルに関連するものはすべて指定する必要はなく、指定された場合は無視され、自動的に計算されます。 (指定されたメタデータに関係なく、インデックスサブテーブルフォーマット1およびビットマップデータ形式のみが使用されます。)
デフォルトでは、 injectcbdt 、フォントからglyf 、 loca 、 CFF 、またはCFF2テーブルも削除します。これらのテーブルを保持するには、フォントファイル名の前に-gオプションを指定します。
COLR / CPAL形式MicrosoftのCOLR / CPAL形式は現在サポートされていません。