Coder Social home page Coder Social logo

silenceleo / snowb-bmf Goto Github PK

View Code? Open in Web Editor NEW
274.0 3.0 63.0 31.3 MB

Bitmap Font Generator Online

Home Page: https://snowb.org

License: MIT License

HTML 0.31% JavaScript 77.65% TypeScript 21.50% CSS 0.23% SCSS 0.31%
bmfont bitmap-font bitmapfont bitmap-font-generator bitmap-fonts bitmap bitmapfonts bitmaps

snowb-bmf's Introduction

logo

SnowBamboo Bitmap Font Generator Online

简体中文

https://snowb.org/

Recently, Google Chrome officially says goodbye to Flash, Adobe will not support Flash Player any longer as well. That also means the online tool Littera which we frequently applied before is no longer available in Chrome. SnowBamboo applied Canvas API and follows modern browsers' specification, making it simple to edit Bitmap Font online. It is compatible with Littera files (.ltr) and can be easily converted to SnowBamboo files (.sbf).

SnowBamboo Bitmap Font Generator Preview

snowb-bmf's People

Contributors

dependabot[bot] avatar finscn avatar silenceleo avatar weijiuqiao avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

snowb-bmf's Issues

Can't open early saved file .sbf

When I attempt to load a file, an error occurs, and the file does not load. This issue is not present with new project files; I can reopen and work with them without any problems. However, I am unable to do so with old ones.
image
paytable_1_font.zip

Align gradients and/or images with (for example) glyph baseline?

image

Would it be possible to introduce an option where we could choose between various placement for gradients, anchoring them at, for example, baseline?

I hoped I could work around this issue by using an image; however, that gives the same results.

image

Here's the image I used:

untitled

It would be great if we could, for example, choose baseline as a vertical anchor and then translate (and scale, and maybe even rotate) the image (and gradient) with more options.

Have you thought about this? I know applying gradients to fonts is a real pain, so there might be a myriad of issues that I'm not thinking of.

Allow bold, italic, strikethrough, etc.

Unless I'm missing something, there doesn't seem to be an option to make text bold, strikethrough, etc.
When using an Arial font for example, there's no way to use Arial Bold, only Arial regular.

Missing Ability to Rename Glyph

Allow me renaming the glyph right in the editor will make it able to import some image as window doesn't allow some special character.

**Previously i remembered that the tool allow me to renaming the glyph as will
image

Not an issue. More like an idea about gradients.

But first... performance in Firefox (the latest version) dropped somehow. I had to turn to Chrome where performance is fine.

Idea is about gradient fills, both for use with fill and stroke. Cool gradients are important for good design yet they can be sometimes tedious to replicate from original design in Photoshop.

  • Saving gradient fills presets within SnowB would be first step to solve that.
  • adding color picker would speed up creation of new gradient fills
  • And adding option to import Photoshop *.grd gradients would be de lux option.

Blurry pixel font output

Hello! I'm testing out snowb-bmf and am really impressed with the functionality.

I am primarily looking at it for game dev purposes, where I primarily need to use pixel fonts.

For some reason, all of the fonts I output have a bit of subpixel blur outside of the text lines. Is there an option to disable that or antialiasing?

As an example, here is the Monogram font (https://datagoblin.itch.io/monogram) exported using Angelcode BMFont's most recent version, with 16 px font size:
image

Here is the preview from Snowb bmf, the exported font has the same subpixel blur around each character as well.
image

Is there a setting I'm missing somewhere? Or could an option be added to disable font smoothing? Any/all info is greatly appreciated.

在Safari浏览器中有问题

当图片大小超过1812*1812后,他将什么都不显示(与文字内容无关)
image

可以通过减少文字内容,来让它正常工作。
但是总觉得不对,当然它在Google浏览器中是正确的。

No export formats available? Let's work together to improve it.

If you haven't found any available types in the format selection for exporting files, please provide a template or format document so that I can fully understand the requirements. I will do my best to add it as soon as possible.
You can also submit a pull request to contribute and enhance the tool.

Before adding an export format, please ensure the following:

  1. Confirm that the selected format is standardized, meaning it complies with industry specifications and standards and is widely accepted and supported.
  2. Confirm that the selected format is widely adopted or supported, preferably by at least one open-source engine. This will ensure that the exported fonts can be correctly displayed and utilized across different applications and platforms.

File Open Bug and Sharp Setting defaulting to value Bug

Noticed in Firefox 100.0

File Open:
When done working on font file, Editor can't open another font saved font. Had to refresh the page to Open it.

Defaulting Bug:
Sharp Setting defaults to 80% on save. Editor opens font with 80% Sharp as default. *decimal values in fnt file may cause some game engines not to render fonts correctly.

Gradient save issue

Hi,I have encountered an issue with gradients with both fill and stroke options.
If i set more than two colors in a single gradient and save it as sbf positions are set to 0

Original Project

before

After Save -> .sbf -> Open

after

Great job with the tool by the way, we love it! :)

Wrong yoffset when having padding

Font: https://www.dafont.com/fr/04b-03.font

bmfont export:

<?xml version="1.0"?>
<font>
  <info face="04b03" size="8" bold="0" italic="0" charset="" unicode="1" stretchH="100" smooth="0" aa="1" padding="2,2,2,2" spacing="0,0" outline="0"/>
  <common lineHeight="8" base="6" scaleW="128" scaleH="128" pages="1" packed="0" alphaChnl="0" redChnl="0" greenChnl="0" blueChnl="0"/>
  <pages>
    <page id="0" file="padding_0.png" />
  </pages>
  <chars count="95">
    <char id="32" x="61" y="44" width="7" height="5" xoffset="-3" yoffset="5" xadvance="4" page="0" chnl="15" />
    <char id="33" x="117" y="27" width="5" height="9" xoffset="-2" yoffset="-1" xadvance="2" page="0" chnl="15" />
    <char id="34" x="15" y="46" width="7" height="6" xoffset="-2" yoffset="-1" xadvance="4" page="0" chnl="15" />
    <char id="35" x="63" y="0" width="9" height="9" xoffset="-2" yoffset="-1" xadvance="6" page="0" chnl="15" />
    <char id="36" x="14" y="0" width="8" height="10" xoffset="-2" yoffset="-1" xadvance="5" page="0" chnl="15" />
    <char id="37" x="72" y="0" width="9" height="9" xoffset="-2" yoffset="-1" xadvance="6" page="0" chnl="15" />
    <char id="38" x="81" y="0" width="9" height="9" xoffset="-2" yoffset="-1" xadvance="6" page="0" chnl="15" />
    <char id="39" x="41" y="45" width="5" height="6" xoffset="-2" yoffset="-1" xadvance="2" page="0" chnl="15" />
    <char id="40" x="95" y="27" width="6" height="9" xoffset="-2" yoffset="-1" xadvance="3" page="0" chnl="15" />
    <char id="41" x="101" y="27" width="6" height="9" xoffset="-2" yoffset="-1" xadvance="3" page="0" chnl="15" />
    <char id="42" x="115" y="36" width="7" height="7" xoffset="-2" yoffset="-1" xadvance="4" page="0" chnl="15" />
    <char id="43" x="108" y="36" width="7" height="7" xoffset="-2" yoffset="0" xadvance="4" page="0" chnl="15" />
    <char id="44" x="35" y="45" width="6" height="6" xoffset="-2" yoffset="3" xadvance="3" page="0" chnl="15" />
    <char id="45" x="54" y="45" width="7" height="5" xoffset="-2" yoffset="1" xadvance="4" page="0" chnl="15" />
    <char id="46" x="68" y="44" width="5" height="5" xoffset="-2" yoffset="3" xadvance="2" page="0" chnl="15" />
    <char id="47" x="54" y="0" width="9" height="9" xoffset="-2" yoffset="-1" xadvance="6" page="0" chnl="15" />
    <char id="48" x="24" y="10" width="8" height="9" xoffset="-2" yoffset="-1" xadvance="5" page="0" chnl="15" />
    <char id="49" x="89" y="27" width="6" height="9" xoffset="-2" yoffset="-1" xadvance="3" page="0" chnl="15" />
    <char id="50" x="56" y="9" width="8" height="9" xoffset="-2" yoffset="-1" xadvance="5" page="0" chnl="15" />
    <char id="51" x="64" y="9" width="8" height="9" xoffset="-2" yoffset="-1" xadvance="5" page="0" chnl="15" />
    <char id="52" x="72" y="9" width="8" height="9" xoffset="-2" yoffset="-1" xadvance="5" page="0" chnl="15" />
    <char id="53" x="80" y="9" width="8" height="9" xoffset="-2" yoffset="-1" xadvance="5" page="0" chnl="15" />
    <char id="54" x="0" y="11" width="8" height="9" xoffset="-2" yoffset="-1" xadvance="5" page="0" chnl="15" />
    <char id="55" x="96" y="9" width="8" height="9" xoffset="-2" yoffset="-1" xadvance="5" page="0" chnl="15" />
    <char id="56" x="104" y="9" width="8" height="9" xoffset="-2" yoffset="-1" xadvance="5" page="0" chnl="15" />
    <char id="57" x="112" y="9" width="8" height="9" xoffset="-2" yoffset="-1" xadvance="5" page="0" chnl="15" />
    <char id="58" x="122" y="36" width="5" height="7" xoffset="-2" yoffset="0" xadvance="2" page="0" chnl="15" />
    <char id="59" x="103" y="36" width="5" height="8" xoffset="-2" yoffset="0" xadvance="2" page="0" chnl="15" />
    <char id="60" x="7" y="29" width="7" height="9" xoffset="-2" yoffset="-1" xadvance="4" page="0" chnl="15" />
    <char id="61" x="0" y="46" width="7" height="7" xoffset="-2" yoffset="0" xadvance="4" page="0" chnl="15" />
    <char id="62" x="112" y="18" width="7" height="9" xoffset="-2" yoffset="-1" xadvance="4" page="0" chnl="15" />
    <char id="63" x="8" y="19" width="8" height="9" xoffset="-2" yoffset="-1" xadvance="5" page="0" chnl="15" />
    <char id="64" x="117" y="0" width="9" height="9" xoffset="-2" yoffset="-1" xadvance="6" page="0" chnl="15" />
    <char id="65" x="16" y="19" width="8" height="9" xoffset="-2" yoffset="-1" xadvance="5" page="0" chnl="15" />
    <char id="66" x="24" y="19" width="8" height="9" xoffset="-2" yoffset="-1" xadvance="5" page="0" chnl="15" />
    <char id="67" x="35" y="28" width="7" height="9" xoffset="-2" yoffset="-1" xadvance="4" page="0" chnl="15" />
    <char id="68" x="32" y="19" width="8" height="9" xoffset="-2" yoffset="-1" xadvance="5" page="0" chnl="15" />
    <char id="69" x="119" y="18" width="7" height="9" xoffset="-2" yoffset="-1" xadvance="4" page="0" chnl="15" />
    <char id="70" x="21" y="28" width="7" height="9" xoffset="-2" yoffset="-1" xadvance="4" page="0" chnl="15" />
    <char id="71" x="40" y="19" width="8" height="9" xoffset="-2" yoffset="-1" xadvance="5" page="0" chnl="15" />
    <char id="72" x="48" y="19" width="8" height="9" xoffset="-2" yoffset="-1" xadvance="5" page="0" chnl="15" />
    <char id="73" x="14" y="28" width="7" height="9" xoffset="-2" yoffset="-1" xadvance="4" page="0" chnl="15" />
    <char id="74" x="56" y="18" width="8" height="9" xoffset="-2" yoffset="-1" xadvance="5" page="0" chnl="15" />
    <char id="75" x="64" y="18" width="8" height="9" xoffset="-2" yoffset="-1" xadvance="5" page="0" chnl="15" />
    <char id="76" x="42" y="28" width="7" height="9" xoffset="-2" yoffset="-1" xadvance="4" page="0" chnl="15" />
    <char id="77" x="90" y="0" width="9" height="9" xoffset="-2" yoffset="-1" xadvance="6" page="0" chnl="15" />
    <char id="78" x="72" y="18" width="8" height="9" xoffset="-2" yoffset="-1" xadvance="5" page="0" chnl="15" />
    <char id="79" x="32" y="10" width="8" height="9" xoffset="-2" yoffset="-1" xadvance="5" page="0" chnl="15" />
    <char id="80" x="0" y="20" width="8" height="9" xoffset="-2" yoffset="-1" xadvance="5" page="0" chnl="15" />
    <char id="81" x="38" y="0" width="8" height="10" xoffset="-2" yoffset="-1" xadvance="5" page="0" chnl="15" />
    <char id="82" x="120" y="9" width="8" height="9" xoffset="-2" yoffset="-1" xadvance="5" page="0" chnl="15" />
    <char id="83" x="88" y="9" width="8" height="9" xoffset="-2" yoffset="-1" xadvance="5" page="0" chnl="15" />
    <char id="84" x="56" y="27" width="7" height="9" xoffset="-2" yoffset="-1" xadvance="4" page="0" chnl="15" />
    <char id="85" x="48" y="10" width="8" height="9" xoffset="-2" yoffset="-1" xadvance="5" page="0" chnl="15" />
    <char id="86" x="40" y="10" width="8" height="9" xoffset="-2" yoffset="-1" xadvance="5" page="0" chnl="15" />
    <char id="87" x="99" y="0" width="9" height="9" xoffset="-2" yoffset="-1" xadvance="6" page="0" chnl="15" />
    <char id="88" x="16" y="10" width="8" height="9" xoffset="-2" yoffset="-1" xadvance="5" page="0" chnl="15" />
    <char id="89" x="8" y="10" width="8" height="9" xoffset="-2" yoffset="-1" xadvance="5" page="0" chnl="15" />
    <char id="90" x="0" y="29" width="7" height="9" xoffset="-2" yoffset="-1" xadvance="4" page="0" chnl="15" />
    <char id="91" x="77" y="27" width="6" height="9" xoffset="-2" yoffset="-1" xadvance="3" page="0" chnl="15" />
    <char id="92" x="108" y="0" width="9" height="9" xoffset="-2" yoffset="-1" xadvance="6" page="0" chnl="15" />
    <char id="93" x="83" y="27" width="6" height="9" xoffset="-2" yoffset="-1" xadvance="3" page="0" chnl="15" />
    <char id="94" x="22" y="45" width="7" height="6" xoffset="-2" yoffset="-1" xadvance="4" page="0" chnl="15" />
    <char id="95" x="46" y="45" width="8" height="5" xoffset="-2" yoffset="3" xadvance="5" page="0" chnl="15" />
    <char id="96" x="29" y="45" width="6" height="6" xoffset="-2" yoffset="-1" xadvance="3" page="0" chnl="15" />
    <char id="97" x="74" y="36" width="8" height="8" xoffset="-2" yoffset="0" xadvance="5" page="0" chnl="15" />
    <char id="98" x="80" y="18" width="8" height="9" xoffset="-2" yoffset="-1" xadvance="5" page="0" chnl="15" />
    <char id="99" x="82" y="36" width="7" height="8" xoffset="-2" yoffset="0" xadvance="4" page="0" chnl="15" />
    <char id="100" x="88" y="18" width="8" height="9" xoffset="-2" yoffset="-1" xadvance="5" page="0" chnl="15" />
    <char id="101" x="58" y="36" width="8" height="8" xoffset="-2" yoffset="0" xadvance="5" page="0" chnl="15" />
    <char id="102" x="28" y="28" width="7" height="9" xoffset="-2" yoffset="-1" xadvance="4" page="0" chnl="15" />
    <char id="103" x="22" y="0" width="8" height="10" xoffset="-2" yoffset="0" xadvance="5" page="0" chnl="15" />
    <char id="104" x="96" y="18" width="8" height="9" xoffset="-2" yoffset="-1" xadvance="5" page="0" chnl="15" />
    <char id="105" x="107" y="27" width="5" height="9" xoffset="-2" yoffset="-1" xadvance="2" page="0" chnl="15" />
    <char id="106" x="0" y="0" width="6" height="11" xoffset="-2" yoffset="-1" xadvance="3" page="0" chnl="15" />
    <char id="107" x="104" y="18" width="8" height="9" xoffset="-2" yoffset="-1" xadvance="5" page="0" chnl="15" />
    <char id="108" x="112" y="27" width="5" height="9" xoffset="-2" yoffset="-1" xadvance="2" page="0" chnl="15" />
    <char id="109" x="9" y="38" width="9" height="8" xoffset="-2" yoffset="0" xadvance="6" page="0" chnl="15" />
    <char id="110" x="34" y="37" width="8" height="8" xoffset="-2" yoffset="0" xadvance="5" page="0" chnl="15" />
    <char id="111" x="42" y="37" width="8" height="8" xoffset="-2" yoffset="0" xadvance="5" page="0" chnl="15" />
    <char id="112" x="46" y="0" width="8" height="10" xoffset="-2" yoffset="0" xadvance="5" page="0" chnl="15" />
    <char id="113" x="30" y="0" width="8" height="10" xoffset="-2" yoffset="0" xadvance="5" page="0" chnl="15" />
    <char id="114" x="89" y="36" width="7" height="8" xoffset="-2" yoffset="0" xadvance="4" page="0" chnl="15" />
    <char id="115" x="66" y="36" width="8" height="8" xoffset="-2" yoffset="0" xadvance="5" page="0" chnl="15" />
    <char id="116" x="63" y="27" width="7" height="9" xoffset="-2" yoffset="-1" xadvance="4" page="0" chnl="15" />
    <char id="117" x="18" y="37" width="8" height="8" xoffset="-2" yoffset="0" xadvance="5" page="0" chnl="15" />
    <char id="118" x="26" y="37" width="8" height="8" xoffset="-2" yoffset="0" xadvance="5" page="0" chnl="15" />
    <char id="119" x="0" y="38" width="9" height="8" xoffset="-2" yoffset="0" xadvance="6" page="0" chnl="15" />
    <char id="120" x="96" y="36" width="7" height="8" xoffset="-2" yoffset="0" xadvance="4" page="0" chnl="15" />
    <char id="121" x="6" y="0" width="8" height="10" xoffset="-2" yoffset="0" xadvance="5" page="0" chnl="15" />
    <char id="122" x="50" y="37" width="8" height="8" xoffset="-2" yoffset="0" xadvance="5" page="0" chnl="15" />
    <char id="123" x="70" y="27" width="7" height="9" xoffset="-2" yoffset="-1" xadvance="4" page="0" chnl="15" />
    <char id="124" x="122" y="27" width="5" height="9" xoffset="-2" yoffset="-1" xadvance="2" page="0" chnl="15" />
    <char id="125" x="49" y="28" width="7" height="9" xoffset="-2" yoffset="-1" xadvance="4" page="0" chnl="15" />
    <char id="126" x="7" y="46" width="8" height="6" xoffset="-2" yoffset="-1" xadvance="5" page="0" chnl="15" />
  </chars>
</font>

snowb-bmf export:

<?xml version="1.0" encoding="UTF-8"?>
<font>
    <info face="04b03" size="8" bold="0" italic="0" charset="" unicode="1" stretchH="100" smooth="1" aa="1"
          padding="2,2,2,2" spacing="0,0"/>
    <common lineHeight="8" base="8" scaleW="128" scaleH="128" pages="1" packed="0"/>
    <pages>
        <page id="0" file="Unnamed.png"/>
    </pages>
    <chars count="90">
        <char id="32" x="0" y="0" width="0" height="0" xoffset="0" yoffset="0" xadvance="4" page="0" chnl="15"/>
        <char id="33" x="15" y="29" width="5" height="9" xoffset="0" yoffset="1" xadvance="2" page="0" chnl="15"/>
        <char id="34" x="120" y="37" width="7" height="6" xoffset="0" yoffset="1" xadvance="4" page="0" chnl="15"/>
        <char id="35" x="63" y="29" width="9" height="9" xoffset="0" yoffset="1" xadvance="6" page="0" chnl="15"/>
        <char id="36" x="46" y="0" width="8" height="10" xoffset="0" yoffset="1" xadvance="5" page="0" chnl="15"/>
        <char id="37" x="119" y="20" width="9" height="9" xoffset="0" yoffset="1" xadvance="6" page="0" chnl="15"/>
        <char id="38" x="72" y="29" width="9" height="9" xoffset="0" yoffset="1" xadvance="6" page="0" chnl="15"/>
        <char id="39" x="0" y="46" width="5" height="6" xoffset="0" yoffset="1" xadvance="2" page="0" chnl="15"/>
        <char id="40" x="28" y="29" width="6" height="9" xoffset="0" yoffset="1" xadvance="3" page="0" chnl="15"/>
        <char id="41" x="34" y="29" width="6" height="9" xoffset="0" yoffset="1" xadvance="3" page="0" chnl="15"/>
        <char id="42" x="93" y="38" width="7" height="7" xoffset="0" yoffset="1" xadvance="4" page="0" chnl="15"/>
        <char id="43" x="100" y="38" width="7" height="7" xoffset="0" yoffset="2" xadvance="4" page="0" chnl="15"/>
        <char id="44" x="114" y="37" width="6" height="6" xoffset="0" yoffset="5" xadvance="3" page="0" chnl="15"/>
        <char id="45" x="20" y="46" width="7" height="5" xoffset="0" yoffset="3" xadvance="4" page="0" chnl="15"/>
        <char id="46" x="27" y="46" width="5" height="5" xoffset="0" yoffset="5" xadvance="2" page="0" chnl="15"/>
        <char id="47" x="40" y="29" width="9" height="9" xoffset="0" yoffset="1" xadvance="6" page="0" chnl="15"/>
        <char id="48" x="54" y="0" width="8" height="9" xoffset="0" yoffset="1" xadvance="5" page="0" chnl="15"/>
        <char id="49" x="62" y="0" width="6" height="9" xoffset="0" yoffset="1" xadvance="3" page="0" chnl="15"/>
        <char id="50" x="68" y="0" width="8" height="9" xoffset="0" yoffset="1" xadvance="5" page="0" chnl="15"/>
        <char id="51" x="76" y="0" width="8" height="9" xoffset="0" yoffset="1" xadvance="5" page="0" chnl="15"/>
        <char id="52" x="84" y="0" width="8" height="9" xoffset="0" yoffset="1" xadvance="5" page="0" chnl="15"/>
        <char id="53" x="92" y="0" width="8" height="9" xoffset="0" yoffset="1" xadvance="5" page="0" chnl="15"/>
        <char id="54" x="100" y="0" width="8" height="9" xoffset="0" yoffset="1" xadvance="5" page="0" chnl="15"/>
        <char id="55" x="108" y="0" width="8" height="9" xoffset="0" yoffset="1" xadvance="5" page="0" chnl="15"/>
        <char id="56" x="116" y="0" width="8" height="9" xoffset="0" yoffset="1" xadvance="5" page="0" chnl="15"/>
        <char id="57" x="0" y="11" width="8" height="9" xoffset="0" yoffset="1" xadvance="5" page="0" chnl="15"/>
        <char id="58" x="88" y="38" width="5" height="7" xoffset="0" yoffset="2" xadvance="2" page="0" chnl="15"/>
        <char id="59" x="122" y="29" width="5" height="8" xoffset="0" yoffset="2" xadvance="2" page="0" chnl="15"/>
        <char id="61" x="107" y="37" width="7" height="7" xoffset="0" yoffset="2" xadvance="4" page="0" chnl="15"/>
        <char id="63" x="20" y="29" width="8" height="9" xoffset="0" yoffset="1" xadvance="5" page="0" chnl="15"/>
        <char id="64" x="54" y="29" width="9" height="9" xoffset="0" yoffset="1" xadvance="6" page="0" chnl="15"/>
        <char id="65" x="64" y="11" width="8" height="9" xoffset="0" yoffset="1" xadvance="5" page="0" chnl="15"/>
        <char id="66" x="72" y="11" width="8" height="9" xoffset="0" yoffset="1" xadvance="5" page="0" chnl="15"/>
        <char id="67" x="80" y="11" width="7" height="9" xoffset="0" yoffset="1" xadvance="4" page="0" chnl="15"/>
        <char id="68" x="87" y="11" width="8" height="9" xoffset="0" yoffset="1" xadvance="5" page="0" chnl="15"/>
        <char id="69" x="95" y="11" width="7" height="9" xoffset="0" yoffset="1" xadvance="4" page="0" chnl="15"/>
        <char id="70" x="102" y="11" width="7" height="9" xoffset="0" yoffset="1" xadvance="4" page="0" chnl="15"/>
        <char id="71" x="109" y="11" width="8" height="9" xoffset="0" yoffset="1" xadvance="5" page="0" chnl="15"/>
        <char id="72" x="117" y="11" width="8" height="9" xoffset="0" yoffset="1" xadvance="5" page="0" chnl="15"/>
        <char id="73" x="0" y="20" width="7" height="9" xoffset="0" yoffset="1" xadvance="4" page="0" chnl="15"/>
        <char id="74" x="7" y="20" width="8" height="9" xoffset="0" yoffset="1" xadvance="5" page="0" chnl="15"/>
        <char id="75" x="15" y="20" width="8" height="9" xoffset="0" yoffset="1" xadvance="5" page="0" chnl="15"/>
        <char id="76" x="23" y="20" width="7" height="9" xoffset="0" yoffset="1" xadvance="4" page="0" chnl="15"/>
        <char id="77" x="30" y="20" width="9" height="9" xoffset="0" yoffset="1" xadvance="6" page="0" chnl="15"/>
        <char id="78" x="39" y="20" width="8" height="9" xoffset="0" yoffset="1" xadvance="5" page="0" chnl="15"/>
        <char id="79" x="47" y="20" width="8" height="9" xoffset="0" yoffset="1" xadvance="5" page="0" chnl="15"/>
        <char id="80" x="55" y="20" width="8" height="9" xoffset="0" yoffset="1" xadvance="5" page="0" chnl="15"/>
        <char id="81" x="38" y="0" width="8" height="10" xoffset="0" yoffset="1" xadvance="5" page="0" chnl="15"/>
        <char id="82" x="63" y="20" width="8" height="9" xoffset="0" yoffset="1" xadvance="5" page="0" chnl="15"/>
        <char id="83" x="71" y="20" width="8" height="9" xoffset="0" yoffset="1" xadvance="5" page="0" chnl="15"/>
        <char id="84" x="79" y="20" width="7" height="9" xoffset="0" yoffset="1" xadvance="4" page="0" chnl="15"/>
        <char id="85" x="86" y="20" width="8" height="9" xoffset="0" yoffset="1" xadvance="5" page="0" chnl="15"/>
        <char id="86" x="94" y="20" width="8" height="9" xoffset="0" yoffset="1" xadvance="5" page="0" chnl="15"/>
        <char id="87" x="102" y="20" width="9" height="9" xoffset="0" yoffset="1" xadvance="6" page="0" chnl="15"/>
        <char id="88" x="111" y="20" width="8" height="9" xoffset="0" yoffset="1" xadvance="5" page="0" chnl="15"/>
        <char id="89" x="0" y="29" width="8" height="9" xoffset="0" yoffset="1" xadvance="5" page="0" chnl="15"/>
        <char id="90" x="8" y="29" width="7" height="9" xoffset="0" yoffset="1" xadvance="4" page="0" chnl="15"/>
        <char id="91" x="95" y="29" width="6" height="9" xoffset="0" yoffset="1" xadvance="3" page="0" chnl="15"/>
        <char id="93" x="101" y="29" width="6" height="9" xoffset="0" yoffset="1" xadvance="3" page="0" chnl="15"/>
        <char id="94" x="5" y="46" width="7" height="6" xoffset="0" yoffset="1" xadvance="4" page="0" chnl="15"/>
        <char id="95" x="12" y="46" width="8" height="5" xoffset="0" yoffset="5" xadvance="5" page="0" chnl="15"/>
        <char id="97" x="107" y="29" width="8" height="8" xoffset="0" yoffset="2" xadvance="5" page="0" chnl="15"/>
        <char id="98" x="8" y="11" width="8" height="9" xoffset="0" yoffset="1" xadvance="5" page="0" chnl="15"/>
        <char id="99" x="115" y="29" width="7" height="8" xoffset="0" yoffset="2" xadvance="4" page="0" chnl="15"/>
        <char id="100" x="16" y="11" width="8" height="9" xoffset="0" yoffset="1" xadvance="5" page="0" chnl="15"/>
        <char id="101" x="0" y="38" width="8" height="8" xoffset="0" yoffset="2" xadvance="5" page="0" chnl="15"/>
        <char id="102" x="24" y="11" width="7" height="9" xoffset="0" yoffset="1" xadvance="4" page="0" chnl="15"/>
        <char id="103" x="6" y="0" width="8" height="10" xoffset="0" yoffset="2" xadvance="5" page="0" chnl="15"/>
        <char id="104" x="31" y="11" width="8" height="9" xoffset="0" yoffset="1" xadvance="5" page="0" chnl="15"/>
        <char id="105" x="39" y="11" width="5" height="9" xoffset="0" yoffset="1" xadvance="2" page="0" chnl="15"/>
        <char id="106" x="0" y="0" width="6" height="11" xoffset="0" yoffset="1" xadvance="3" page="0" chnl="15"/>
        <char id="107" x="44" y="11" width="8" height="9" xoffset="0" yoffset="1" xadvance="5" page="0" chnl="15"/>
        <char id="108" x="52" y="11" width="5" height="9" xoffset="0" yoffset="1" xadvance="2" page="0" chnl="15"/>
        <char id="109" x="8" y="38" width="9" height="8" xoffset="0" yoffset="2" xadvance="6" page="0" chnl="15"/>
        <char id="110" x="17" y="38" width="8" height="8" xoffset="0" yoffset="2" xadvance="5" page="0" chnl="15"/>
        <char id="111" x="25" y="38" width="8" height="8" xoffset="0" yoffset="2" xadvance="5" page="0" chnl="15"/>
        <char id="112" x="14" y="0" width="8" height="10" xoffset="0" yoffset="2" xadvance="5" page="0" chnl="15"/>
        <char id="113" x="22" y="0" width="8" height="10" xoffset="0" yoffset="2" xadvance="5" page="0" chnl="15"/>
        <char id="114" x="33" y="38" width="7" height="8" xoffset="0" yoffset="2" xadvance="4" page="0" chnl="15"/>
        <char id="115" x="40" y="38" width="8" height="8" xoffset="0" yoffset="2" xadvance="5" page="0" chnl="15"/>
        <char id="116" x="57" y="11" width="7" height="9" xoffset="0" yoffset="1" xadvance="4" page="0" chnl="15"/>
        <char id="117" x="48" y="38" width="8" height="8" xoffset="0" yoffset="2" xadvance="5" page="0" chnl="15"/>
        <char id="118" x="56" y="38" width="8" height="8" xoffset="0" yoffset="2" xadvance="5" page="0" chnl="15"/>
        <char id="119" x="64" y="38" width="9" height="8" xoffset="0" yoffset="2" xadvance="6" page="0" chnl="15"/>
        <char id="120" x="73" y="38" width="7" height="8" xoffset="0" yoffset="2" xadvance="4" page="0" chnl="15"/>
        <char id="121" x="30" y="0" width="8" height="10" xoffset="0" yoffset="2" xadvance="5" page="0" chnl="15"/>
        <char id="122" x="80" y="38" width="8" height="8" xoffset="0" yoffset="2" xadvance="5" page="0" chnl="15"/>
        <char id="123" x="81" y="29" width="7" height="9" xoffset="0" yoffset="1" xadvance="4" page="0" chnl="15"/>
        <char id="124" x="49" y="29" width="5" height="9" xoffset="0" yoffset="1" xadvance="2" page="0" chnl="15"/>
        <char id="125" x="88" y="29" width="7" height="9" xoffset="0" yoffset="1" xadvance="4" page="0" chnl="15"/>
    </chars>
</font>

老版本sbf不能使用

作者你好,现在老版本的sbg不能使用,请问能否兼容老版本sbf或者能否告知如何部署这个网页

很诡异的bug

mac电脑,edge浏览器,打开snowb.org,点击open打开之前保存的工程,在Glyphs中新增字符,重点来了:如果这时候使用的是系统自带的拼音输入法(一定要是网页打开之前就已经是拼音输入法了),那么Glyphs中的字符会全部还原成初始英文字符;如果使用的是系统英文输入,则不会出现这种情况。

Part with low alpha are not detected properly

I'm creating 2 fonts where one it's going to be the shadow of the one on top, so to have perfect control on both I'm creating an area bigger than the letters with alpha = 0.01, but the program is cutting those parts off.

I'm using Chome Version 113.0.5672.127 (Official Build) (64-bit)
Same happens in Firefox

Really great program BTW! Thanks for doing it!

image

Improvement suggestions

👍

  1. Padding split to x-padding, y-padding.
  2. Shadow with Stroke effect is not correct(eg. Solid stroke 5px, Shadow offset x 2px, offset y 2px).
  3. Need Batching.
  4. Need API Doc.
  5. Kerning map.

首先,点赞~
1.Padding拆分为x和y单独padding;
2.阴影和描边同时使用时,效果不对,看起来怪怪的,像被截断;而且边缘变得很硬,像是方形而不是轮廓;
比如描边5像素,阴影xy各2像素。
3.缺少批处理功能或者接口;
4.缺少API文档。
5. Kerning字偶距信息编辑。

Chars tip

Would it be possible to add which char is it at the end of the line, like this?

image

Wrong baseline

Hi!

When exporting my font with bmfont, I get a correct result with a base of 6 (in the common section), but with snowb-bmf I get 8.

Font: https://www.dafont.com/fr/04b-03.font

bmfont xml:

<?xml version="1.0" encoding="UTF-8"?>
<font>
    <info face="04b03" size="8" bold="0" italic="0" charset="" unicode="1" stretchH="100" smooth="1" aa="1"
          padding="0,0,0,0" spacing="0,0"/>
    <common lineHeight="8" base="8" scaleW="40" scaleH="40" pages="1" packed="0"/>
    <pages>
        <page id="0" file="Unnamed.png"/>
    </pages>
    <chars count="90">
        <char id="32" x="0" y="0" width="0" height="0" xoffset="0" yoffset="0" xadvance="4" page="0" chnl="15"/>
        <char id="33" x="27" y="22" width="1" height="5" xoffset="0" yoffset="1" xadvance="2" page="0" chnl="15"/>
        <char id="34" x="32" y="32" width="3" height="2" xoffset="0" yoffset="1" xadvance="4" page="0" chnl="15"/>
        <char id="35" x="11" y="27" width="5" height="5" xoffset="0" yoffset="1" xadvance="6" page="0" chnl="15"/>
        <char id="36" x="22" y="0" width="4" height="6" xoffset="0" yoffset="1" xadvance="5" page="0" chnl="15"/>
        <char id="37" x="28" y="22" width="5" height="5" xoffset="0" yoffset="1" xadvance="6" page="0" chnl="15"/>
        <char id="38" x="16" y="27" width="5" height="5" xoffset="0" yoffset="1" xadvance="6" page="0" chnl="15"/>
        <char id="39" x="35" y="32" width="1" height="2" xoffset="0" yoffset="1" xadvance="2" page="0" chnl="15"/>
        <char id="40" x="38" y="12" width="2" height="5" xoffset="0" yoffset="1" xadvance="3" page="0" chnl="15"/>
        <char id="41" x="38" y="17" width="2" height="5" xoffset="0" yoffset="1" xadvance="3" page="0" chnl="15"/>
        <char id="42" x="21" y="32" width="3" height="3" xoffset="0" yoffset="1" xadvance="4" page="0" chnl="15"/>
        <char id="43" x="24" y="32" width="3" height="3" xoffset="0" yoffset="2" xadvance="4" page="0" chnl="15"/>
        <char id="44" x="30" y="32" width="2" height="2" xoffset="0" yoffset="5" xadvance="3" page="0" chnl="15"/>
        <char id="45" x="6" y="6" width="3" height="1" xoffset="0" yoffset="3" xadvance="4" page="0" chnl="15"/>
        <char id="46" x="9" y="6" width="1" height="1" xoffset="0" yoffset="5" xadvance="2" page="0" chnl="15"/>
        <char id="47" x="0" y="27" width="5" height="5" xoffset="0" yoffset="1" xadvance="6" page="0" chnl="15"/>
        <char id="48" x="26" y="0" width="4" height="5" xoffset="0" yoffset="1" xadvance="5" page="0" chnl="15"/>
        <char id="49" x="30" y="0" width="2" height="5" xoffset="0" yoffset="1" xadvance="3" page="0" chnl="15"/>
        <char id="50" x="32" y="0" width="4" height="5" xoffset="0" yoffset="1" xadvance="5" page="0" chnl="15"/>
        <char id="51" x="36" y="0" width="4" height="5" xoffset="0" yoffset="1" xadvance="5" page="0" chnl="15"/>
        <char id="52" x="0" y="7" width="4" height="5" xoffset="0" yoffset="1" xadvance="5" page="0" chnl="15"/>
        <char id="53" x="4" y="7" width="4" height="5" xoffset="0" yoffset="1" xadvance="5" page="0" chnl="15"/>
        <char id="54" x="8" y="7" width="4" height="5" xoffset="0" yoffset="1" xadvance="5" page="0" chnl="15"/>
        <char id="55" x="12" y="7" width="4" height="5" xoffset="0" yoffset="1" xadvance="5" page="0" chnl="15"/>
        <char id="56" x="16" y="7" width="4" height="5" xoffset="0" yoffset="1" xadvance="5" page="0" chnl="15"/>
        <char id="57" x="20" y="7" width="4" height="5" xoffset="0" yoffset="1" xadvance="5" page="0" chnl="15"/>
        <char id="58" x="20" y="32" width="1" height="3" xoffset="0" yoffset="2" xadvance="2" page="0" chnl="15"/>
        <char id="59" x="19" y="32" width="1" height="4" xoffset="0" yoffset="2" xadvance="2" page="0" chnl="15"/>
        <char id="61" x="27" y="32" width="3" height="3" xoffset="0" yoffset="2" xadvance="4" page="0" chnl="15"/>
        <char id="63" x="33" y="22" width="4" height="5" xoffset="0" yoffset="1" xadvance="5" page="0" chnl="15"/>
        <char id="64" x="6" y="27" width="5" height="5" xoffset="0" yoffset="1" xadvance="6" page="0" chnl="15"/>
        <char id="65" x="13" y="12" width="4" height="5" xoffset="0" yoffset="1" xadvance="5" page="0" chnl="15"/>
        <char id="66" x="17" y="12" width="4" height="5" xoffset="0" yoffset="1" xadvance="5" page="0" chnl="15"/>
        <char id="67" x="21" y="12" width="3" height="5" xoffset="0" yoffset="1" xadvance="4" page="0" chnl="15"/>
        <char id="68" x="24" y="12" width="4" height="5" xoffset="0" yoffset="1" xadvance="5" page="0" chnl="15"/>
        <char id="69" x="28" y="12" width="3" height="5" xoffset="0" yoffset="1" xadvance="4" page="0" chnl="15"/>
        <char id="70" x="31" y="12" width="3" height="5" xoffset="0" yoffset="1" xadvance="4" page="0" chnl="15"/>
        <char id="71" x="34" y="12" width="4" height="5" xoffset="0" yoffset="1" xadvance="5" page="0" chnl="15"/>
        <char id="72" x="0" y="17" width="4" height="5" xoffset="0" yoffset="1" xadvance="5" page="0" chnl="15"/>
        <char id="73" x="4" y="17" width="3" height="5" xoffset="0" yoffset="1" xadvance="4" page="0" chnl="15"/>
        <char id="74" x="7" y="17" width="4" height="5" xoffset="0" yoffset="1" xadvance="5" page="0" chnl="15"/>
        <char id="75" x="11" y="17" width="4" height="5" xoffset="0" yoffset="1" xadvance="5" page="0" chnl="15"/>
        <char id="76" x="15" y="17" width="3" height="5" xoffset="0" yoffset="1" xadvance="4" page="0" chnl="15"/>
        <char id="77" x="35" y="7" width="5" height="5" xoffset="0" yoffset="1" xadvance="6" page="0" chnl="15"/>
        <char id="78" x="18" y="17" width="4" height="5" xoffset="0" yoffset="1" xadvance="5" page="0" chnl="15"/>
        <char id="79" x="22" y="17" width="4" height="5" xoffset="0" yoffset="1" xadvance="5" page="0" chnl="15"/>
        <char id="80" x="26" y="17" width="4" height="5" xoffset="0" yoffset="1" xadvance="5" page="0" chnl="15"/>
        <char id="81" x="18" y="0" width="4" height="6" xoffset="0" yoffset="1" xadvance="5" page="0" chnl="15"/>
        <char id="82" x="30" y="17" width="4" height="5" xoffset="0" yoffset="1" xadvance="5" page="0" chnl="15"/>
        <char id="83" x="34" y="17" width="4" height="5" xoffset="0" yoffset="1" xadvance="5" page="0" chnl="15"/>
        <char id="84" x="0" y="22" width="3" height="5" xoffset="0" yoffset="1" xadvance="4" page="0" chnl="15"/>
        <char id="85" x="3" y="22" width="4" height="5" xoffset="0" yoffset="1" xadvance="5" page="0" chnl="15"/>
        <char id="86" x="7" y="22" width="4" height="5" xoffset="0" yoffset="1" xadvance="5" page="0" chnl="15"/>
        <char id="87" x="11" y="22" width="5" height="5" xoffset="0" yoffset="1" xadvance="6" page="0" chnl="15"/>
        <char id="88" x="16" y="22" width="4" height="5" xoffset="0" yoffset="1" xadvance="5" page="0" chnl="15"/>
        <char id="89" x="20" y="22" width="4" height="5" xoffset="0" yoffset="1" xadvance="5" page="0" chnl="15"/>
        <char id="90" x="24" y="22" width="3" height="5" xoffset="0" yoffset="1" xadvance="4" page="0" chnl="15"/>
        <char id="91" x="24" y="27" width="2" height="5" xoffset="0" yoffset="1" xadvance="3" page="0" chnl="15"/>
        <char id="93" x="26" y="27" width="2" height="5" xoffset="0" yoffset="1" xadvance="3" page="0" chnl="15"/>
        <char id="94" x="36" y="32" width="3" height="2" xoffset="0" yoffset="1" xadvance="4" page="0" chnl="15"/>
        <char id="95" x="2" y="6" width="4" height="1" xoffset="0" yoffset="5" xadvance="5" page="0" chnl="15"/>
        <char id="97" x="28" y="27" width="4" height="4" xoffset="0" yoffset="2" xadvance="5" page="0" chnl="15"/>
        <char id="98" x="24" y="7" width="4" height="5" xoffset="0" yoffset="1" xadvance="5" page="0" chnl="15"/>
        <char id="99" x="32" y="27" width="3" height="4" xoffset="0" yoffset="2" xadvance="4" page="0" chnl="15"/>
        <char id="100" x="28" y="7" width="4" height="5" xoffset="0" yoffset="1" xadvance="5" page="0" chnl="15"/>
        <char id="101" x="0" y="32" width="4" height="4" xoffset="0" yoffset="2" xadvance="5" page="0" chnl="15"/>
        <char id="102" x="32" y="7" width="3" height="5" xoffset="0" yoffset="1" xadvance="4" page="0" chnl="15"/>
        <char id="103" x="2" y="0" width="4" height="6" xoffset="0" yoffset="2" xadvance="5" page="0" chnl="15"/>
        <char id="104" x="0" y="12" width="4" height="5" xoffset="0" yoffset="1" xadvance="5" page="0" chnl="15"/>
        <char id="105" x="4" y="12" width="1" height="5" xoffset="0" yoffset="1" xadvance="2" page="0" chnl="15"/>
        <char id="106" x="0" y="0" width="2" height="7" xoffset="0" yoffset="1" xadvance="3" page="0" chnl="15"/>
        <char id="107" x="5" y="12" width="4" height="5" xoffset="0" yoffset="1" xadvance="5" page="0" chnl="15"/>
        <char id="108" x="9" y="12" width="1" height="5" xoffset="0" yoffset="1" xadvance="2" page="0" chnl="15"/>
        <char id="109" x="35" y="27" width="5" height="4" xoffset="0" yoffset="2" xadvance="6" page="0" chnl="15"/>
        <char id="110" x="0" y="36" width="4" height="4" xoffset="0" yoffset="2" xadvance="5" page="0" chnl="15"/>
        <char id="111" x="4" y="32" width="4" height="4" xoffset="0" yoffset="2" xadvance="5" page="0" chnl="15"/>
        <char id="112" x="6" y="0" width="4" height="6" xoffset="0" yoffset="2" xadvance="5" page="0" chnl="15"/>
        <char id="113" x="10" y="0" width="4" height="6" xoffset="0" yoffset="2" xadvance="5" page="0" chnl="15"/>
        <char id="114" x="4" y="36" width="3" height="4" xoffset="0" yoffset="2" xadvance="4" page="0" chnl="15"/>
        <char id="115" x="8" y="32" width="4" height="4" xoffset="0" yoffset="2" xadvance="5" page="0" chnl="15"/>
        <char id="116" x="10" y="12" width="3" height="5" xoffset="0" yoffset="1" xadvance="4" page="0" chnl="15"/>
        <char id="117" x="7" y="36" width="4" height="4" xoffset="0" yoffset="2" xadvance="5" page="0" chnl="15"/>
        <char id="118" x="12" y="32" width="4" height="4" xoffset="0" yoffset="2" xadvance="5" page="0" chnl="15"/>
        <char id="119" x="11" y="36" width="5" height="4" xoffset="0" yoffset="2" xadvance="6" page="0" chnl="15"/>
        <char id="120" x="16" y="32" width="3" height="4" xoffset="0" yoffset="2" xadvance="4" page="0" chnl="15"/>
        <char id="121" x="14" y="0" width="4" height="6" xoffset="0" yoffset="2" xadvance="5" page="0" chnl="15"/>
        <char id="122" x="16" y="36" width="4" height="4" xoffset="0" yoffset="2" xadvance="5" page="0" chnl="15"/>
        <char id="123" x="37" y="22" width="3" height="5" xoffset="0" yoffset="1" xadvance="4" page="0" chnl="15"/>
        <char id="124" x="5" y="27" width="1" height="5" xoffset="0" yoffset="1" xadvance="2" page="0" chnl="15"/>
        <char id="125" x="21" y="27" width="3" height="5" xoffset="0" yoffset="1" xadvance="4" page="0" chnl="15"/>
    </chars>
</font>

snowb-bmf xml:

<?xml version="1.0"?>
<font>
  <info face="04b03" size="8" bold="0" italic="0" charset="" unicode="1" stretchH="100" smooth="0" aa="1" padding="0,0,0,0" spacing="4,4" outline="0"/>
  <common lineHeight="8" base="6" scaleW="128" scaleH="128" pages="1" packed="0" alphaChnl="0" redChnl="0" greenChnl="0" blueChnl="0"/>
  <pages>
    <page id="0" file="nopadding_0.png" />
  </pages>
  <chars count="95">
    <char id="32" x="61" y="44" width="3" height="1" xoffset="-1" yoffset="7" xadvance="4" page="0" chnl="15" />
    <char id="33" x="117" y="27" width="1" height="5" xoffset="0" yoffset="1" xadvance="2" page="0" chnl="15" />
    <char id="34" x="15" y="46" width="3" height="2" xoffset="0" yoffset="1" xadvance="4" page="0" chnl="15" />
    <char id="35" x="63" y="0" width="5" height="5" xoffset="0" yoffset="1" xadvance="6" page="0" chnl="15" />
    <char id="36" x="14" y="0" width="4" height="6" xoffset="0" yoffset="1" xadvance="5" page="0" chnl="15" />
    <char id="37" x="72" y="0" width="5" height="5" xoffset="0" yoffset="1" xadvance="6" page="0" chnl="15" />
    <char id="38" x="81" y="0" width="5" height="5" xoffset="0" yoffset="1" xadvance="6" page="0" chnl="15" />
    <char id="39" x="41" y="45" width="1" height="2" xoffset="0" yoffset="1" xadvance="2" page="0" chnl="15" />
    <char id="40" x="95" y="27" width="2" height="5" xoffset="0" yoffset="1" xadvance="3" page="0" chnl="15" />
    <char id="41" x="101" y="27" width="2" height="5" xoffset="0" yoffset="1" xadvance="3" page="0" chnl="15" />
    <char id="42" x="115" y="36" width="3" height="3" xoffset="0" yoffset="1" xadvance="4" page="0" chnl="15" />
    <char id="43" x="108" y="36" width="3" height="3" xoffset="0" yoffset="2" xadvance="4" page="0" chnl="15" />
    <char id="44" x="35" y="45" width="2" height="2" xoffset="0" yoffset="5" xadvance="3" page="0" chnl="15" />
    <char id="45" x="54" y="45" width="3" height="1" xoffset="0" yoffset="3" xadvance="4" page="0" chnl="15" />
    <char id="46" x="68" y="44" width="1" height="1" xoffset="0" yoffset="5" xadvance="2" page="0" chnl="15" />
    <char id="47" x="54" y="0" width="5" height="5" xoffset="0" yoffset="1" xadvance="6" page="0" chnl="15" />
    <char id="48" x="24" y="10" width="4" height="5" xoffset="0" yoffset="1" xadvance="5" page="0" chnl="15" />
    <char id="49" x="89" y="27" width="2" height="5" xoffset="0" yoffset="1" xadvance="3" page="0" chnl="15" />
    <char id="50" x="56" y="9" width="4" height="5" xoffset="0" yoffset="1" xadvance="5" page="0" chnl="15" />
    <char id="51" x="64" y="9" width="4" height="5" xoffset="0" yoffset="1" xadvance="5" page="0" chnl="15" />
    <char id="52" x="72" y="9" width="4" height="5" xoffset="0" yoffset="1" xadvance="5" page="0" chnl="15" />
    <char id="53" x="80" y="9" width="4" height="5" xoffset="0" yoffset="1" xadvance="5" page="0" chnl="15" />
    <char id="54" x="0" y="11" width="4" height="5" xoffset="0" yoffset="1" xadvance="5" page="0" chnl="15" />
    <char id="55" x="96" y="9" width="4" height="5" xoffset="0" yoffset="1" xadvance="5" page="0" chnl="15" />
    <char id="56" x="104" y="9" width="4" height="5" xoffset="0" yoffset="1" xadvance="5" page="0" chnl="15" />
    <char id="57" x="112" y="9" width="4" height="5" xoffset="0" yoffset="1" xadvance="5" page="0" chnl="15" />
    <char id="58" x="122" y="36" width="1" height="3" xoffset="0" yoffset="2" xadvance="2" page="0" chnl="15" />
    <char id="59" x="103" y="36" width="1" height="4" xoffset="0" yoffset="2" xadvance="2" page="0" chnl="15" />
    <char id="60" x="7" y="29" width="3" height="5" xoffset="0" yoffset="1" xadvance="4" page="0" chnl="15" />
    <char id="61" x="0" y="46" width="3" height="3" xoffset="0" yoffset="2" xadvance="4" page="0" chnl="15" />
    <char id="62" x="112" y="18" width="3" height="5" xoffset="0" yoffset="1" xadvance="4" page="0" chnl="15" />
    <char id="63" x="8" y="19" width="4" height="5" xoffset="0" yoffset="1" xadvance="5" page="0" chnl="15" />
    <char id="64" x="117" y="0" width="5" height="5" xoffset="0" yoffset="1" xadvance="6" page="0" chnl="15" />
    <char id="65" x="16" y="19" width="4" height="5" xoffset="0" yoffset="1" xadvance="5" page="0" chnl="15" />
    <char id="66" x="24" y="19" width="4" height="5" xoffset="0" yoffset="1" xadvance="5" page="0" chnl="15" />
    <char id="67" x="35" y="28" width="3" height="5" xoffset="0" yoffset="1" xadvance="4" page="0" chnl="15" />
    <char id="68" x="32" y="19" width="4" height="5" xoffset="0" yoffset="1" xadvance="5" page="0" chnl="15" />
    <char id="69" x="119" y="18" width="3" height="5" xoffset="0" yoffset="1" xadvance="4" page="0" chnl="15" />
    <char id="70" x="21" y="28" width="3" height="5" xoffset="0" yoffset="1" xadvance="4" page="0" chnl="15" />
    <char id="71" x="40" y="19" width="4" height="5" xoffset="0" yoffset="1" xadvance="5" page="0" chnl="15" />
    <char id="72" x="48" y="19" width="4" height="5" xoffset="0" yoffset="1" xadvance="5" page="0" chnl="15" />
    <char id="73" x="14" y="28" width="3" height="5" xoffset="0" yoffset="1" xadvance="4" page="0" chnl="15" />
    <char id="74" x="56" y="18" width="4" height="5" xoffset="0" yoffset="1" xadvance="5" page="0" chnl="15" />
    <char id="75" x="64" y="18" width="4" height="5" xoffset="0" yoffset="1" xadvance="5" page="0" chnl="15" />
    <char id="76" x="42" y="28" width="3" height="5" xoffset="0" yoffset="1" xadvance="4" page="0" chnl="15" />
    <char id="77" x="90" y="0" width="5" height="5" xoffset="0" yoffset="1" xadvance="6" page="0" chnl="15" />
    <char id="78" x="72" y="18" width="4" height="5" xoffset="0" yoffset="1" xadvance="5" page="0" chnl="15" />
    <char id="79" x="32" y="10" width="4" height="5" xoffset="0" yoffset="1" xadvance="5" page="0" chnl="15" />
    <char id="80" x="0" y="20" width="4" height="5" xoffset="0" yoffset="1" xadvance="5" page="0" chnl="15" />
    <char id="81" x="38" y="0" width="4" height="6" xoffset="0" yoffset="1" xadvance="5" page="0" chnl="15" />
    <char id="82" x="120" y="9" width="4" height="5" xoffset="0" yoffset="1" xadvance="5" page="0" chnl="15" />
    <char id="83" x="88" y="9" width="4" height="5" xoffset="0" yoffset="1" xadvance="5" page="0" chnl="15" />
    <char id="84" x="56" y="27" width="3" height="5" xoffset="0" yoffset="1" xadvance="4" page="0" chnl="15" />
    <char id="85" x="48" y="10" width="4" height="5" xoffset="0" yoffset="1" xadvance="5" page="0" chnl="15" />
    <char id="86" x="40" y="10" width="4" height="5" xoffset="0" yoffset="1" xadvance="5" page="0" chnl="15" />
    <char id="87" x="99" y="0" width="5" height="5" xoffset="0" yoffset="1" xadvance="6" page="0" chnl="15" />
    <char id="88" x="16" y="10" width="4" height="5" xoffset="0" yoffset="1" xadvance="5" page="0" chnl="15" />
    <char id="89" x="8" y="10" width="4" height="5" xoffset="0" yoffset="1" xadvance="5" page="0" chnl="15" />
    <char id="90" x="0" y="29" width="3" height="5" xoffset="0" yoffset="1" xadvance="4" page="0" chnl="15" />
    <char id="91" x="77" y="27" width="2" height="5" xoffset="0" yoffset="1" xadvance="3" page="0" chnl="15" />
    <char id="92" x="108" y="0" width="5" height="5" xoffset="0" yoffset="1" xadvance="6" page="0" chnl="15" />
    <char id="93" x="83" y="27" width="2" height="5" xoffset="0" yoffset="1" xadvance="3" page="0" chnl="15" />
    <char id="94" x="22" y="45" width="3" height="2" xoffset="0" yoffset="1" xadvance="4" page="0" chnl="15" />
    <char id="95" x="46" y="45" width="4" height="1" xoffset="0" yoffset="5" xadvance="5" page="0" chnl="15" />
    <char id="96" x="29" y="45" width="2" height="2" xoffset="0" yoffset="1" xadvance="3" page="0" chnl="15" />
    <char id="97" x="74" y="36" width="4" height="4" xoffset="0" yoffset="2" xadvance="5" page="0" chnl="15" />
    <char id="98" x="80" y="18" width="4" height="5" xoffset="0" yoffset="1" xadvance="5" page="0" chnl="15" />
    <char id="99" x="82" y="36" width="3" height="4" xoffset="0" yoffset="2" xadvance="4" page="0" chnl="15" />
    <char id="100" x="88" y="18" width="4" height="5" xoffset="0" yoffset="1" xadvance="5" page="0" chnl="15" />
    <char id="101" x="58" y="36" width="4" height="4" xoffset="0" yoffset="2" xadvance="5" page="0" chnl="15" />
    <char id="102" x="28" y="28" width="3" height="5" xoffset="0" yoffset="1" xadvance="4" page="0" chnl="15" />
    <char id="103" x="22" y="0" width="4" height="6" xoffset="0" yoffset="2" xadvance="5" page="0" chnl="15" />
    <char id="104" x="96" y="18" width="4" height="5" xoffset="0" yoffset="1" xadvance="5" page="0" chnl="15" />
    <char id="105" x="107" y="27" width="1" height="5" xoffset="0" yoffset="1" xadvance="2" page="0" chnl="15" />
    <char id="106" x="0" y="0" width="2" height="7" xoffset="0" yoffset="1" xadvance="3" page="0" chnl="15" />
    <char id="107" x="104" y="18" width="4" height="5" xoffset="0" yoffset="1" xadvance="5" page="0" chnl="15" />
    <char id="108" x="112" y="27" width="1" height="5" xoffset="0" yoffset="1" xadvance="2" page="0" chnl="15" />
    <char id="109" x="9" y="38" width="5" height="4" xoffset="0" yoffset="2" xadvance="6" page="0" chnl="15" />
    <char id="110" x="34" y="37" width="4" height="4" xoffset="0" yoffset="2" xadvance="5" page="0" chnl="15" />
    <char id="111" x="42" y="37" width="4" height="4" xoffset="0" yoffset="2" xadvance="5" page="0" chnl="15" />
    <char id="112" x="46" y="0" width="4" height="6" xoffset="0" yoffset="2" xadvance="5" page="0" chnl="15" />
    <char id="113" x="30" y="0" width="4" height="6" xoffset="0" yoffset="2" xadvance="5" page="0" chnl="15" />
    <char id="114" x="89" y="36" width="3" height="4" xoffset="0" yoffset="2" xadvance="4" page="0" chnl="15" />
    <char id="115" x="66" y="36" width="4" height="4" xoffset="0" yoffset="2" xadvance="5" page="0" chnl="15" />
    <char id="116" x="63" y="27" width="3" height="5" xoffset="0" yoffset="1" xadvance="4" page="0" chnl="15" />
    <char id="117" x="18" y="37" width="4" height="4" xoffset="0" yoffset="2" xadvance="5" page="0" chnl="15" />
    <char id="118" x="26" y="37" width="4" height="4" xoffset="0" yoffset="2" xadvance="5" page="0" chnl="15" />
    <char id="119" x="0" y="38" width="5" height="4" xoffset="0" yoffset="2" xadvance="6" page="0" chnl="15" />
    <char id="120" x="96" y="36" width="3" height="4" xoffset="0" yoffset="2" xadvance="4" page="0" chnl="15" />
    <char id="121" x="6" y="0" width="4" height="6" xoffset="0" yoffset="2" xadvance="5" page="0" chnl="15" />
    <char id="122" x="50" y="37" width="4" height="4" xoffset="0" yoffset="2" xadvance="5" page="0" chnl="15" />
    <char id="123" x="70" y="27" width="3" height="5" xoffset="0" yoffset="1" xadvance="4" page="0" chnl="15" />
    <char id="124" x="122" y="27" width="1" height="5" xoffset="0" yoffset="1" xadvance="2" page="0" chnl="15" />
    <char id="125" x="49" y="28" width="3" height="5" xoffset="0" yoffset="1" xadvance="4" page="0" chnl="15" />
    <char id="126" x="7" y="46" width="4" height="2" xoffset="0" yoffset="1" xadvance="5" page="0" chnl="15" />
  </chars>
</font>

Rotated Characters?

I know it's bitmap, but it'd be nice to have rotated characters for a project I'm working on.

Small font sizes no longer rendering correctly?

It has been a few months since I last exported a new bitmap font.

While previously I had issues with font being blurry, which you fixed with the sharpening option, now I'm seeing issues where fonts aren't rendered properly due to being cut off and slightly transparent.

Here is what this font looked like a few months back when you did the sharpening fix:
image

Here is what it looks today with the same settings, no matter which browser I use:
image

For some reason, parts of the fonts are now transparent, and many characters are cut off. Is there a new setting I'm missing or something that broke in the interim? The font can be obtained from here for testing: https://datagoblin.itch.io/monogram

No option for multi-page textures

Trying to generate a large number of characters for a project, but there doesn't seem to be an option for having the characters spread out across multiple pages, like Hiero for example. I'd rather have multiple smaller pages than one giant page.

Fallback font support

I just came accross your app and it looks very promising!

In past I used Littera and they have very useful feature - fallback font. If glyph X is not present in selected font, it looks in fallback font for it:
obrazek

What it is good for? I work on games and we do localization into many languages. I used it to mix cyrillic or CJK characters from different .ttf files into single texture atlas.

In fact, Littera has one fallback font. It would be the best if you could stack multiple source font files. Then you would use glyph from the first one in which it is defined.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.