BitmapFont 1.13: Systemnaher Loader für Bitmap-Fonts
Übersicht

![]() |
d-bugBetreff: BitmapFont 1.13: Systemnaher Loader für Bitmap-Fonts |
![]() Antworten mit Zitat ![]() |
---|---|---|
Version 1.13
BitmapFont lädt einen BMP-oder PNGFont und fügt ihn so in das System ein, dass er mit den normalen ImageFont-Funktionen benutzt werden kann. Der geladene Font kann also mit DrawText gezeichnet werden und die Manipulationen, wie SetScale, SetRotation usw. sind auch ohne weiteres möglich. Download: Den Download gibt es hier. Version History: Da dieser Post zu lang wurde, hab ich die History nach hier verlagert. cheers |
||
- Zuletzt bearbeitet von d-bug am Mo, Mai 18, 2009 17:29, insgesamt 20-mal bearbeitet
![]() |
D2006Administrator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ist echt gut geworden und in meinem Spiel so gut wie eingebaut.
Bin stolz auf dich! ![]() |
||
Intel Core i5 2500 | 16 GB DDR3 RAM dualchannel | ATI Radeon HD6870 (1024 MB RAM) | Windows 7 Home Premium
Intel Core 2 Duo 2.4 GHz | 2 GB DDR3 RAM dualchannel | Nvidia GeForce 9400M (256 MB shared RAM) | Mac OS X Snow Leopard Intel Pentium Dual-Core 2.4 GHz | 3 GB DDR2 RAM dualchannel | ATI Radeon HD3850 (1024 MB RAM) | Windows 7 Home Premium Chaos Interactive :: GoBang :: BB-Poker :: ChaosBreaker :: Hexagon :: ChaosRacer 2 |
![]() |
hamZtaAdministrator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Sehr hilfreich! Läuft einwandfrei auf dem Mac!
Vielen Dank hamZta |
||
Blog. |
![]() |
BladeRunnerModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich habe einen Bug zu verzeichnen- ich lud einen Zeichensatz ein welcher den zur Verfügung stehenden Platz nicht komplett ausnutzt. Der Rest des Zeichensatzes ist transparent.
Beim einzeichnen musste ich feststellen dass die Zeichen auf eine Grundlinie versetzt werden, wenn sie nicht bis komplett auf den 'boden' reichen. Dadurch wird das Bild verzerrt. Ich musste in den Zeichensatz in die Ecken der einzelnen Zeichen punkte mit Transparenz 1 einzeichnen um das zu vermeiden. |
||
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3 Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64 B3D BMax MaxGUI Stolzer Gewinner des BAC#48, #52 & #92 |
![]() |
d-bug |
![]() Antworten mit Zitat ![]() |
---|---|---|
Erstmal Danke, für die Resonanz!
@Blade Kannst du mir vielleicht den besagten Font mal per PM zukommen lassen? Am liebsten die Version, die du nicht nachbearbeitet hast. Man ist ja schließlich faul. ![]() Grüße |
||
![]() |
d-bug |
![]() Antworten mit Zitat ![]() |
---|---|---|
Version 1.01
deswegen auch der Doppelpost (Gnade! *winsel*) Download und Beschreibung gibts im ersten Post. Oder beim nächsten synchronisieren über den BlitzHelp-Module Server! Grüße² |
||
- Zuletzt bearbeitet von d-bug am Fr, Feb 02, 2007 18:33, insgesamt einmal bearbeitet
![]() |
d-bug |
![]() Antworten mit Zitat ![]() |
---|---|---|
Version 1.02
Download und Beschreibung gibts im ersten Post. Oder beim nächsten synchronisieren über den BlitzHelp-Module Server! cheers |
||
- Zuletzt bearbeitet von d-bug am Fr, Feb 02, 2007 18:33, insgesamt einmal bearbeitet
![]() |
d-bug |
![]() Antworten mit Zitat ![]() |
---|---|---|
Version 1.05
Download und Beschreibung gibts im ersten Post. Oder beim nächsten synchronisieren über den BlitzHelp-Module Server! cheers |
||
![]() |
d-bug |
![]() Antworten mit Zitat ![]() |
---|---|---|
Version 1.06
Download und Beschreibung gibts im ersten Post. Oder beim nächsten synchronisieren über den BlitzHelp-Module Server! cheers (Erschütternd, dass ich ewig diesen Thread selber pushen muss, aber es schreibt ja niemand sonst etwas hier rein ![]() |
||
![]() |
PlasmaBetreff: he |
![]() Antworten mit Zitat ![]() |
---|---|---|
ich nutze das teil schon yay
kommt gut rüber in zusammenhang mit dem programm vonsuco-x habe nur vergessen mich zu bedanken . mfg |
||
![]() |
Vertex |
![]() Antworten mit Zitat ![]() |
---|---|---|
Wird eigentlich Kerning unterstützt? Nicht, dass ich beispielsweise Helvetica als monospace Schrift gerendert bekomme. | ||
vertex.dreamfall.at | GitHub |
![]() |
d-bug |
![]() Antworten mit Zitat ![]() |
---|---|---|
@vertex
Nein, Kerning wird nicht unterstützt, auf den Gedanken bin ich garnicht gekommen. Ursprünglich war der Loader auch nur für Bitmapfonts gedacht, um diese so einfach wie möglich nach BMax zu bekommen, ohne sich extra eine eigene DrawText Funktion schreiben zu müssen. Bitmapfonts gibt es nicht all zu viele mit Kerning, zumindest hab ich noch keinen gefunden. TTF Fonts kann man damit nur laden, wenn man sie vorher mit Suco-X' Font Extractor bearbeitet hat. Dann sind sie allerdings keine TTF Fonts mehr. Ich denke auch nicht, dass TImageFont Kerning unterstützt. Da muss ich mich nochmal mit beschäftigen. cheers |
||
![]() |
Horst der Biber |
![]() Antworten mit Zitat ![]() |
---|---|---|
hab s jetzt erst entdeckt..
echt cool das ding! voll einfach und so. danke! hab nur ne kleine veränderung vorgenommen und zwar hab ich das Code: [AUSKLAPPEN] 'Reelle Breite aus der Pixmap auslesen
For y = 0 Until tilesize For x = 0 Until tilesize If ((font.Glyphs[index].G_Pixmap.ReadPixel(x,y) Shr 24) & $FF) > $00 If StartX = 0 Or StartX < x StartX = x EndIf If ((font.Glyphs[index].G_Pixmap.ReadPixel(tilesize - x - 1,y) Shr 24) & $FF) > $00 If EndX = 0 Or EndX > (tilesize - x - 1) EndX = (tilesize - x - 1) EndIf Next Next 'Reelle Höhe aus der Pixmap auslesen For x = 0 Until tilesize For y = 0 Until tilesize If ((font.Glyphs[index].G_Pixmap.ReadPixel(x,y) Shr 24) & $FF) > $00 If StartY = 0 Or StartY < y StartY = y EndIf If ((font.Glyphs[index].G_Pixmap.ReadPixel(x,tilesize - y - 1) Shr 24) & $FF) > $00 If EndY = 0 Or EndY > (tilesize - y - 1) EndY = (tilesize - y - 1) EndIf Next Next 'Glyph-Koordinaten und Abmaße setzen font.Glyphs[index].G_Width = StartX - EndX font.Glyphs[index].G_Height = StartY - EndY font.Glyphs[index].G_X = -EndX font.Glyphs[index].G_Y = -StartY font.Glyphs[index].G_Advance = font.Glyphs[index].G_Width + charspaceing If (font.Glyphs[index].G_Height + 1) > font.FontHeight font.FontHeight = (font.Glyphs[index].G_Height + 1) EndIf mit dem Code: [AUSKLAPPEN] 'Reelle Breite aus der Pixmap auslesen
ersetzt.
For y = 0 Until tilesize-1 For x = 0 Until tilesize-1 If ((font.Glyphs[index].G_Pixmap.ReadPixel(x,y) Shr 24) & $FF) > $00 If EndX < x Then EndX = x EndIf Next Next 'Reelle Höhe aus der Pixmap auslesen For x = 0 Until tilesize-1 For y = 0 Until tilesize-1 If ((font.Glyphs[index].G_Pixmap.ReadPixel(x,y) Shr 24) & $FF) > $00 If EndY < y Then EndY = y EndIf Next Next 'Glyph-Koordinaten und Abmaße setzen font.Glyphs[index].G_Width = EndX +1 font.Glyphs[index].G_Height = -(EndY +1) ' <-- Edit font.Glyphs[index].G_X = 0 font.Glyphs[index].G_Y = 0 font.Glyphs[index].G_Advance = font.Glyphs[index].G_Width + charspaceing If (font.Glyphs[index].G_Height + 1) > font.FontHeight font.FontHeight = (font.Glyphs[index].G_Height + 1) EndIf und ne tolle font hab ich auch gemalt ![]() ![]() hier der code zum laden von dem ding Code: [AUSKLAPPEN] SetMaskColor 100,120,80
Local charlist:String="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZÄÖÜ™abcdefghijklmnopqrstuvwxyzäöüß.:,;!?€(/)" SetImageFont LoadBitmapFont("bmpfont.png",16,7,charlist,1) |
||
![]() |
d-bug |
![]() Antworten mit Zitat ![]() |
---|---|---|
Danke Horst!
Deine Änderung werde ich so allerdings nicht übernehmen. ![]() Sie sorgt lediglich dafür, dass jetzt die Chars alle Links im Tile sein müssen, damit die Breite noch stimmt. Eine Höhenberechnung wird in der nächsten Version eh nicht mehr verfügbar sein. Ab dann muss die höhe des Fonts = der Tilehöhe sein und deren Inhalt muss im Image ausgerichtet sein. Dies flog raus, weil Fonts mit Kleinbuchstaben, die die Nulllinie unterschreiten (g, p, q...) falsch berechnet und gezeichnet werden. Dazu will mir keine Lösung einfallen, weil es einfach zu viele verschiedene Fonts gibt um das in eine gute, einfach Lösung zu packen. Ich bleib aber am Ball! Aber diese Version wird noch nicht veröffentlicht, da es da noch ein paar Fixes zu machen gibt. Hab ich aber gerade keine Zeit zu. Außerdem will ich mir noch Gedanken über Kerning machen. Aber das kommt sicher erst im übernächsten Release. Das scheint mir eine recht umfangreiche Kiste zu werden. |
||
Ronny |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Wie waers, jedem Glyph eine Pixelreihe mehr zu spendieren... bspweise immer links, in diesem koennte man bequem per Bildbearbeitung speziell gefaerbte Pixel unterbringen - ein magenta farbener Pixel bestimmt dann die Baseline etc.
Gleiches koennte man natuerlich auch horizontal machen - um nette Kernings festlegen zu koennen. Anders als bei Konfigurationsdateien hat der Fontdesigner dann gleich visuell die Moeglichkeit, sich die Sachen zurechtzubasteln. bye Ron |
||
![]() |
d-bug |
![]() Antworten mit Zitat ![]() |
---|---|---|
Version 1.10
Download und Beschreibung gibts im ersten Post. Oder beim nächsten synchronisieren über den BlitzHelp-Module Server! @Ronny: Leider bedarf es da wahrscheinlich wieder eines speziellen Fonttools weil 99% aller User zu faul sind ihre bisherigen Fonts per Hand umzuarbeiten. Die Idee ansich ist aber nicht schlecht. cheers |
||
- Zuletzt bearbeitet von d-bug am Mi, Feb 21, 2007 18:20, insgesamt 2-mal bearbeitet
Ronny |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ansonsten waere da noch die Moeglichkeit... die "durchschnittliche" Stelle zu berechnen, an der ein Zeichen aufhoert (also maxY) - obwohl, was noch besser waere - fuer jedes ermittelte "maxY" wird ein temporaerer Zaehler eingebracht... der Zaehler mit der hoechsten Anzahl, ist die Stelle, an der die Baseline der Zeichen liegt...
Aehnlich kann man mit der "Oberkante" verfahren, wobei hier aber sicherlich die zweithaeufigste Erwaehnung wichtig waere... sie stellt die Oberkante fuer kleine Buchstaben dar (zwar ist mit "b, d, t, f, l..." eine Ausnahme zu sehen, allerdings sind die anderen Buchstaben vorwiegend auf gleicher Hoehe anzusiedeln (bei Standardschrift-Design). bye Ron |
||
![]() |
d-bug |
![]() Antworten mit Zitat ![]() |
---|---|---|
Version 1.11
Download und Beschreibung gibts im ersten Post. Oder beim nächsten synchronisieren über den BlitzHelp-Module Server! cheers |
||
- Zuletzt bearbeitet von d-bug am Fr, Nov 16, 2007 23:17, insgesamt einmal bearbeitet
![]() |
Justus |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich war ja zuerst skeptisch was Bitmap-Fonts angeht, aber dein Modul hat mich absolut überzeugt und die Funktionen werden ab sofort von mir genutzt. Vielen Dank auch an Suco-X, der diesen wunderbaren FontExtractor programmiert hat. | ||
![]() |
d-bug |
![]() Antworten mit Zitat ![]() |
---|---|---|
Version 1.12
Kleinerer BugFix für die Freunde des PowerPCs. Dank BigEndian Architektur konnten auf älteren Macs keine Suco-bzw. Candyfonts geladen werden. Das wurde nun behoben. Download und Beschreibung gibts im ersten Post. cheers |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group