PixieFGT - enkel bitmap font generator

Allting som har med programmering att göra.

PixieFGT - enkel bitmap font generator

Inläggav Mattias Gustavsson » 06 jul 2009, 16:22

Eftersom jag inte hittat nåt existerande som uppfyller mina krav, så har jag skrivit ett eget tool för att generera bitmap fonts utifrån en true-type font, vilket ju är användbart om man vill ha en font med i ett spel men inte vill köpa distributionsrättigheterna till den...

Det finns att ladda ner här, inklusive källkod:
PixieFGT_1_0.zip

Och syntaxen är såhär:
PixieFGT fontnamn storlek [extrautrymme] [-antialias] [-texture]

Den valfria parametern extrautrymme ger så många pixlar tomt runt varje tecken, så man får plats att t.ex. lägga på en dropshadow eller glow i sitt bildbehandlingsprogram.

Den valfria flaggan -texture gör att tecknen arrangeras på en bitmap med "power-of-two" storlek, och om man utelämnar den placeras tecknen på en lång remsa istället.

Om -antialias specificeras, genereras fonten 16ggr större internt, och samplas ned till rätt storlek, så man får antialias med hög kvalitet.

Så här kan t.ex resultatet se ut:
Bild

Och till det får man även en XML-fil som anger vilket tecken som finns på vilken del av bilden:
  1.  
  2. <PixieFont version="0" name="Times New Roman" size="14" glyphCount="96" glyphHeight="16" baseline="13">
  3. <Layer filename="TimesNewRoman14.tga"/>
  4. <Glyph ascii="32" width="3" x1="0" y1="0" x2="3" y2="16" xoffset="0" yoffset="0"/>
  5. <Glyph ascii="33" width="4" x1="4" y1="0" x2="8" y2="16" xoffset="0" yoffset="0"/>
  6. <Glyph ascii="34" width="5" x1="9" y1="0" x2="14" y2="16" xoffset="0" yoffset="0"/>
  7. <Glyph ascii="35" width="7" x1="15" y1="0" x2="21" y2="16" xoffset="0" yoffset="0"/>
  8. <Glyph ascii="36" width="7" x1="22" y1="0" x2="28" y2="16" xoffset="0" yoffset="0"/>
  9. <Glyph ascii="37" width="11" x1="29" y1="0" x2="40" y2="16" xoffset="0" yoffset="0"/>
  10. <Glyph ascii="38" width="10" x1="41" y1="0" x2="51" y2="16" xoffset="0" yoffset="0"/>
  11. ...
  12.  
  13. <Kerning first="65" second="84" amount="-1"/>
  14. <Kerning first="65" second="86" amount="-1"/>
  15. <Kerning first="65" second="146" amount="-1"/>
  16. <Kerning first="80" second="44" amount="-1"/>
  17. <Kerning first="80" second="46" amount="-1"/>
  18. <Kerning first="86" second="44" amount="-1"/>
  19. <Kerning first="86" second="46" amount="-1"/>
  20. <Kerning first="86" second="65" amount="-1"/>
  21. <Kerning first="86" second="97" amount="-1"/>
  22.  
  23. ...
  24.  
  25. </PixieFont>
  26.  

 
XML-filen innehåller även kerning-information, som man kan använda sig av om man vill. Den ska tolkas som så att om man renderat ett tecken med ascii-kod som motsvarar "first" värdet, och direkt efter renderar ett tecken med ascii-kod motsvarande "second", så ska detta andra tecken justeras i x-led med angivet "amount". Så att tex "A" och "V" hamnar tätare ihop än "A" och "L"...

Koden är public domain som vanligt...
:P http://www.mattiasgustavsson.com - Min blogg
8-) http://www.tophatarcade.com - Utvecklarsajt och Sim/Strategi/RPG butik
:roll: http://www.retrogamedev.org - Forum för retrospel-utvecklare
:shock: http://www.pixieuniversity.com - Min gratis 2D spelmotor
Användarvisningsbild
Mattias Gustavsson
 
Inlägg: 135
Blev medlem: 11 maj 2009, 22:24
Ort: Royal Leamington Spa, UK

Re: PixieFGT - enkel bitmap font generator

Inläggav Hildenborg » 07 jul 2009, 08:32

Coolt!
Det där kommer jag med all sannolikhet använda vid något tillfälle.
Sun Tzu: "In peace prepare for war, in war prepare for peace."
Användarvisningsbild
Hildenborg
Site Admin
 
Inlägg: 191
Blev medlem: 22 apr 2009, 20:25
Ort: Göteborg

Re: PixieFGT - enkel bitmap font generator

Inläggav sirGustav » 08 jul 2009, 18:48

Förutom att koden är tillgänglig, vad ger detta som bmfont inte har?
sedan tror jag inte man slipper köpa distributionsrättigheter bara för att man konverterar den till ett annat format men ianal
sirGustav
 
Inlägg: 45
Blev medlem: 06 jun 2009, 14:46
Ort: Malmö

Re: PixieFGT - enkel bitmap font generator

Inläggav Hildenborg » 08 jul 2009, 21:27

sirGustav skrev:Förutom att koden är tillgänglig, vad ger detta som bmfont inte har?
sedan tror jag inte man slipper köpa distributionsrättigheter bara för att man konverterar den till ett annat format men ianal


Om typsnittet har copyrights, så är det kört ändå.
Jag har redan vandrat den vägen en gång...
Sun Tzu: "In peace prepare for war, in war prepare for peace."
Användarvisningsbild
Hildenborg
Site Admin
 
Inlägg: 191
Blev medlem: 22 apr 2009, 20:25
Ort: Göteborg

Re: PixieFGT - enkel bitmap font generator

Inläggav Mattias Gustavsson » 10 jul 2009, 10:13

sirGustav skrev:Förutom att koden är tillgänglig, vad ger detta som bmfont inte har?

1) Källkod - annars kan man ju inte modifiera vid behov
2) Bmfont lägger bokstäverna på flera rader - jag behöver dem oftast på en enda rad, för att enklare kunna applicera effekter (t.ex. gradients) i photoshop

Men du, om du inte ser nån användning för det behöver du ju inte använda det - bara att ignorera det då ;)

sirGustav skrev:sedan tror jag inte man slipper köpa distributionsrättigheter bara för att man konverterar den till ett annat format men ianal

Man måste ju ha rättighet att använda fonten förstås, men är skillnad på att distribuera en avbildning av fonten i en fixed storlek och att distribuera själva TTF-filen (eller motsvarande vektoriserad information)

Lagar skiljer sig ju mellan olika länder, men i USA gäller iaf detta, och de brukar ju vara de som är piggast på att stämmas:

http://nwalsh.com/comp.fonts/FAQ/cf_13.htm

"The U.S. Copyright Office holds that a bitmapped font is nothing more than a computerized representation of a typeface, and as such is not copyrightable"

"The Copyright Office is persuaded that creating scalable typefonts using already-digitized typeface represents a significant change in the industry since our previous [September 29, 1988] Policy Decision. We are also persuaded that computer programs designed for generating typeface in conjunction with low resolution and other printing devices may involve original computer instructions entitled protection under the Copyright Act. For example, the creation of scalable font output programs to produce harmonious fonts consisting of hundreds of characters typically involves many decisions in drafting the instructions that drive the printer. The expression of these decisions is neither limited by the unprotectable shape of the letters nor functionally mandated. This expression, assuming it meets the usual standard of authorship, is thus registerable as a computer program."
:P http://www.mattiasgustavsson.com - Min blogg
8-) http://www.tophatarcade.com - Utvecklarsajt och Sim/Strategi/RPG butik
:roll: http://www.retrogamedev.org - Forum för retrospel-utvecklare
:shock: http://www.pixieuniversity.com - Min gratis 2D spelmotor
Användarvisningsbild
Mattias Gustavsson
 
Inlägg: 135
Blev medlem: 11 maj 2009, 22:24
Ort: Royal Leamington Spa, UK

Re: PixieFGT - enkel bitmap font generator

Inläggav sirGustav » 02 aug 2009, 21:00

Jag stötte på följande sidor i dag, med open-source typsnitt, kanske kan hjälpa folk att hitta gratis typsnitt :)
http://ifacethoughts.net/2007/10/02/open-source-fonts/
http://openfontlibrary.fontly.org/ (lite buggig men beta)
sirGustav
 
Inlägg: 45
Blev medlem: 06 jun 2009, 14:46
Ort: Malmö


Återgå till Programmering

Vilka är online

Användare som besöker denna kategori: Inga registrerade användare och 0 gäster

cron