Bits'n'Picas é um conjunto de ferramentas para criar e converter fontes de bitmap e emoji.
As funções de fonte de bitmap podem ser acessadas com uma GUI e a partir de uma linha de comando. As funções de fonte emoji só podem ser acessadas a partir de uma linha de comando.
Inicie o frasco de bits'n'picas sem argumentos ou com o comando edit para abrir a GUI do editor de fontes do Bitmap.
java -jar BitsNPicas.jar
java -jar BitsNPicas.jar edit
java -jar BitsNPicas.jar edit myfont.sfd
O formato de entrada é determinado pela extensão do arquivo do arquivo de entrada. Os formatos de entrada suportados incluem:
.kbitx - bits'n'picas 2.x Formato de salvamento nativo.kbits - bits'n'picas 1.x nativo de salvar formato.sfd - fontforge (apenas bitmaps; esboços não suportados).bdf - x11 formato de distribuição de bitmap.psf , .psfu , .psf.gz , .psfu.gz - fonte de tela do PC.suit - Mac OS Classic Font Say (no Fork Fork).dfont - Mac OS Classic Font Say (no Data Fork).nfnt - Mac OS Classic Font Resource (no Data Fork).png - sfont ou rfont, extensão do software Krative de Sfont.png , .jpg , .jpeg , .gif , .bmp - crie a partir da imagem (somente GUI).bin , .rom - Crie a partir do arquivo binário (somente GUI).hex - gnu unifont Hex Formato.cvt - Fonte GeoS em formato convertido (incluindo mega fontes).fzx - fzx por Andrew Owen (para ZX Spectrum).u8m - U8/m (UTF -8 para microcomputadores).font - Fonte de bitmap amiga (apenas em preto e branco; cor não suportada).fnt - Windows .fnt formato (não é o mesmo que .fon ; fontes vetoriais não suportadas).fnt , .ftx - ibm DOS/V FONTX2 Formato.fnt , .mgf , .mpf - mousepaint/mousegraphics toolkit font.fnt , .rbf , .rb11 , .rb12 - formato de fonte de caixa de rock.fnt , .fntz , .fnty , .cyf - formato de font cybiko.fnt , .png - formato de fonte de playdate.set - Apple II Hi -RES Gerador de caracteres Conjunto de caracteres.hmzk - mi banda 2 formato de fonte.dsf - Dosstart! Por Daniel L. Nice.sbf - fonte de bitmap de sabrielNo Mac OS X, você também pode iniciar ou soltar um arquivo de fonte no aplicativo Bits'n'Picas.

Os bits'n'Picas também podem abrir fontes, acessórios de mesa e malas do sistema e se mover em torno de fontes, acessórios de mesa, scripts, layouts de teclado e sons, assim como o localizador costumava fazer de volta nos bons velhos tempos do sistema 7.

Uma interface semelhante também existe para fontes GEOs.

Exemplo:
java -jar BitsNPicas.jar convertbitmap -f ttf -o myfont.ttf myfont.sfd
Isso converterá as greves do bitmap no arquivo FontForge myfont.sfd para descrever em um novo arquivo de font TrueType myfont.ttf . Se, por exemplo, os ataques de bitmap tiverem 16 pixels de altura, os contornos gerados corresponderão perfeitamente à grade de pixels com um tamanho de fonte de 16 pontos.
O formato de entrada é determinado pela extensão do arquivo do arquivo de entrada. Os formatos de entrada suportados incluem:
.kbitx - bits'n'picas 2.x Formato de salvamento nativo.kbits - bits'n'picas 1.x nativo de salvar formato.sfd - fontforge (apenas bitmaps; esboços não suportados).bdf - x11 formato de distribuição de bitmap.psf , .psfu , .psf.gz , .psfu.gz - fonte de tela do PC.suit - Mac OS Classic Font Say (no Fork Fork).dfont - Mac OS Classic Font Say (no Data Fork).nfnt - Mac OS Classic Font Resource (no Data Fork).png - sfont ou rfont, extensão do software Krative de Sfont.hex - gnu unifont Hex Formato.cvt - Fonte GeoS em formato convertido (incluindo mega fontes).fzx - fzx por Andrew Owen (para ZX Spectrum).u8m - U8/m (UTF -8 para microcomputadores).font - Fonte de bitmap amiga (apenas em preto e branco; cor não suportada).fnt - Windows .fnt formato (não é o mesmo que .fon ; fontes vetoriais não suportadas).fnt , .ftx - ibm DOS/V FONTX2 Formato.fnt , .mgf , .mpf - mousepaint/mousegraphics toolkit font.fnt , .rbf , .rb11 , .rb12 - formato de fonte de caixa de rock.fnt , .fntz , .fnty , .cyf - formato de font cybiko.fnt , .png - formato de fonte de playdate.set - Apple II Hi -RES Gerador de caracteres Conjunto de caracteres.hmzk - mi banda 2 formato de fonte.dsf - Dosstart! Por Daniel L. Nice.sbf - fonte de bitmap de sabriel O formato de saída é determinado pela opção -f . Os formatos de saída suportados incluem:
kbitx ou kbnp2 - Bits'n'Picas 2.x Formato de salvamento nativokbits ou kbnp1 - bits'n'picas 1.x nativo salvar formatottf ou truetype - TrueTypeotb - OpenType Bitmapbdf - Formato de distribuição de bitmap x11psf , psf2 , psf1 , psfgz , psf2gz , psf1gz - Fonte da tela PCsuit - Mac OS Classic Font Saydfont - MAC OS Classic Font Say (no Data Fork)nfnt - Mac OS Classic Font Resource (no Data Fork)png ou sfont - sdl sfontrfont - RFONT, extensão do software KRATIVE de SFonthex - GNU Unifont Hexcvt ou geos - Fonte GeoS em formato convertido (com mega opção)fzx - FZX por Andrew Owen (para ZX Spectrum)u8m - U8/M (UTF -8 para microcomputadores)font ou amiga - Fonte de Bitmap Amiga (apenas em preto e branco; cor não suportada)fnt ou fnt3 - Windows 3.x .fnt formato (não o mesmo que .fon )fnt2 - Windows 2.x .fnt formato (também não é o mesmo que .fon )fontx2 , fontx ou dosv - IBM DOS/V FONTX2 FORMATmgtk , mgf , mpf ou mousepaint - Mousepaint/Mousegraphics Toolkit Fontrb12 - Formato de fonte Rockbox para Rockbox 2.3 ou acimarb11 - Formato de fonte Rockbox para Rockbox 2.2 ou abaixo e iPodlinuxcybiko - Formato de fonte Cybikoplaydate , playdate-allinone , playdate-fnt -formato de fontes playdate, all-in-one (arquivo .fnt único)playdate-separate , playdate-fnt+png -Formato de Fonte Playdate, arquivos .fnt e .png separadoshrcg ou set - Apple II Hi Hi -RE Gerador de caracteres conjunto de caractereshmzk - Mi Band 2 Fontssbf - Sabriel Bitmap FontAs opções adicionais incluem:
-s Repolulação regex -r -Execute uma pesquisa e substituição no nome da fonte.-b -Aplique um efeito falsificado.-w Unidades -h unidades -Especifique a largura e a altura dos pixels nas unidades EM (para o formato ttf ).-i Fontid -z Tamanho -Especifique o ID da fonte e o tamanho da fonte (para o formato nfnt ou geos ). Você pode ver uma lista de todas as opções usando a opção --help .
sbix da Apple java -jar BitsNPicas.jar extractsbix AppleColorEmoji.ttf
Isso extrairá as imagens de AppleColorEmoji.ttf para o diretório AppleColorEmoji.ttf.sbix.d como arquivos PNG. Haverá vários subdiretos numerados neste diretório; O número corresponde aos pixels por Em das imagens. (Isso não é necessariamente a mesma coisa que a altura da imagem!) A estrutura do diretório resultante será:
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
Isso extrairá as imagens SVG de EmojiOne.otf para o diretório EmojiOne.otf.svg.d como arquivos SVG não compactados. (Se os dados SVG dentro da fonte forem compactados, serão descomprimidos.) A estrutura do diretório resultante será:
EmojiOne.otf
EmojiOne.otf.svg.d
glyph_2.svg
glyph_3.svg
...
CBDT / CBLC do Google java -jar BitsNPicas.jar extractcbdt NotoColorEmoji.ttf
Isso extrairá as imagens PNG de NotoColorEmoji.ttf para o diretório NotoColorEmoji.ttf.cbdt.d . Haverá um ou mais subdiretos numerados neste diretório; O número é simplesmente o índice do registro do Bitmapsize e não tem outro significado. A estrutura de diretório resultante será:
NotoColorEmoji.ttf
NotoColorEmoji.ttf.cbdt.d
0000
glyph_4.png
glyph_5.png
....
metadata.txt
....
fontinfo.txt
O arquivo metadata.txt em cada subdiretório lista todos os valores das várias estruturas de dados nas tabelas CBLC e CBDT . O arquivo fontinfo.txt lista apenas alguns outros valores de outras tabelas não relacionadas para conveniência (já que muitos editores de fontes não podem abrir fontes com tabelas CBDT / CBLC para você encontrar esses valores devido à falta de tabelas glyf / loca ).
COLR / CPAL da Microsoft Atualmente, o formato COLR / CPAL da Microsoft não é suportado.
Para criar uma fonte emoji/colorida, você precisará de duas coisas:
sbix da Apple java -jar BitsNPicas.jar injectsbix MyEmoji.ttf
Isso levará o arquivo de fonte TrueType MyEmoji.ttf e as imagens no diretório MyEmoji.ttf.sbix.d e gerará um novo arquivo de font TrueType MyEmoji.ttf.sbix.ttf com imagens incorporadas em uma tabela sbix . Você pode renomear este arquivo, se quiser. O nome de cada subdiretório no diretório de imagem deve ser os pixels por Em das imagens que ele contém. (Isso não é necessariamente a mesma coisa que a altura da imagem!) O nome do arquivo de cada imagem dentro de cada subdiretório deve ser da forma glyph_123.png (com o índice de glifos em decimal) ou char_ABCD.png (com o ponto de código Unicode em hexadecimal). A posição inferior esquerda de cada imagem será determinada pelas coordenadas mínimas x e y do glifo correspondente no arquivo de fonte TrueType. (Para a Apple Color Emoji, isso acaba de ser definido como 0,0.)
java -jar BitsNPicas.jar injectsvg MyEmoji.otf
Isso levará o arquivo de font OpenType MyEmoji.otf e as imagens SVG no diretório MyEmoji.otf.svg.d e gerarão um novo arquivo de font openType MyEmoji.otf.svg.otf com imagens incorporadas em uma tabela SVG . Você pode renomear este arquivo, se quiser. O nome do arquivo de cada imagem dentro do diretório da imagem deve ser do formulário glyph_123_456.svg (para uma variedade de glifos, com os índices de glifos em decimal), glyph_123.svg (para um único glifo, com o glyph em decimal, ou char_ABCD.svg (para um glyph em decimal, ou charlph, ou charlph.
Para cada índice de glifo mapeado para um documento SVG, deve haver um elemento nesse documento com um ID correspondente a esse índice de glifo (por exemplo id="glyph123" para o índice de glifo 123). Como você pode não conhecer o índice glifo ao especificar um ponto de código no nome do arquivo de imagem, você pode usar o espaço reservado id="glyph{{{0}}}" e será substituído pelo índice de glifo apropriado durante o processo de injeção.
Se você especificar a opção -z antes do nome do arquivo da fonte, os dados SVG serão compactados usando o GZIP. A Microsoft afirma que o formato SVG em excesso suporta isso e a disponibilidade de uma versão do emojione com glifos SVG compactados por GZIP parece fazer backup isso. No entanto, não consegui obter fontes com os glifos SVG compactados por GZIP para funcionarem mesmo na versão mais recente do Firefox até o momento em que este artigo foi escrito, então não recomendo isso.
Se você tem várias imagens que não são SVG que gostaria de injetar usando este formato, pode gerar facilmente SVGs com imagens incorporadas usando um comando como o seguinte:
java -jar BitsNPicas.jar imagetosvg -x 0 -y -700 -w 800 -h 800 myimages/*.png
Isso criará um arquivo SVG correspondente para cada arquivo de imagem não SVG especificado. As opções -x , -y , -w , -h especificam a posição e o tamanho da imagem nas unidades EM. Observe que o eixo y SVG é revertido do eixo y do TrueType, de modo que as coordenadas Y negativas estão acima da linha de base e as coordenadas Y positivas estão abaixo da linha de base.
CBDT / CBLC do Google java -jar BitsNPicas.jar injectcbdt MyEmoji.ttf
Isso levará o arquivo de fonte TrueType MyEmoji.ttf e as imagens PNG no diretório MyEmoji.ttf.cbdt.d e gerará um novo arquivo de fonte TrueType MyEmoji.ttf.cbdt.ttf com imagens embutidas em uma tabela CBDT . Você pode renomear este arquivo, se quiser. Deve haver um subdiretório para cada tamanho de bitmap; Os nomes dos subdiretos não importam. O nome do arquivo de cada imagem dentro de cada subdiretório deve ser do formulário glyph_123.png (com o índice de glifos em decimal) ou char_ABCD.png (com o ponto de código Unicode em hexadecimal).
Recomenda -se que cada subdiretório também contenha um arquivo de valores de metadata.txt a ser usado para as várias estruturas de dados nas tabelas CBLC e CBDT . O seguinte é recomendado no mínimo:
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
Para o índice glifo, você também pode usar char_ABCD (com o ponto de código Unicode em hexadecimal) ou * para cobrir todos os glifos não especificados de outra forma. Os campos associados à própria estrutura de dados (várias compensações, contagens e intervalos de índice de glifos, bem como qualquer coisa associada aos vários tipos de subtíveis de índices) não precisam ser especificados, serão ignorados se especificados e serão calculados automaticamente. (Somente o formato subtable 1 do índice e os formatos de dados de bitmap 17, 18 e 19 serão usados, independentemente dos metadados especificados.)
Por padrão, injectcbdt também removerá as tabelas glyf , loca , CFF ou CFF2 da fonte. Para manter essas tabelas, especifique a opção -g antes do nome do arquivo da fonte.
COLR / CPAL da Microsoft Atualmente, o formato COLR / CPAL da Microsoft não é suportado.