BitmapFont 1.13: Systemnaher Loader für Bitmap-Fonts
Übersicht BlitzMax, BlitzMax NG Codearchiv & Module
d-bugBetreff: BitmapFont 1.13: Systemnaher Loader für Bitmap-Fonts |
So, Nov 26, 2006 21:24 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 |
So, Nov 26, 2006 23:27 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 |
So, Nov 26, 2006 23:33 Antworten mit Zitat |
|
---|---|---|
Sehr hilfreich! Läuft einwandfrei auf dem Mac!
Vielen Dank hamZta |
||
Blog. |
BladeRunnerModerator |
Mo, Nov 27, 2006 0:11 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 |
Mo, Nov 27, 2006 8:08 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 |
Mo, Nov 27, 2006 19:26 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 |
Fr, Jan 26, 2007 17:33 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 |
Fr, Feb 02, 2007 18:33 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 |
So, Feb 04, 2007 14:31 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 |
So, Feb 04, 2007 15:07 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 |
So, Feb 04, 2007 17:09 Antworten mit Zitat |
|
---|---|---|
Wird eigentlich Kerning unterstützt? Nicht, dass ich beispielsweise Helvetica als monospace Schrift gerendert bekomme. | ||
vertex.dreamfall.at | GitHub |
d-bug |
So, Feb 04, 2007 17:25 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 |
Mi, Feb 14, 2007 20:26 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 |
Mi, Feb 14, 2007 20:44 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 |
Mo, Feb 19, 2007 13:04 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 |
Di, Feb 20, 2007 18:15 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 |
Mi, Feb 21, 2007 0:52 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 |
Mi, Feb 21, 2007 18:21 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 |
Fr, März 16, 2007 12:57 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 |
Fr, Nov 16, 2007 23:19 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 BlitzMax, BlitzMax NG Codearchiv & Module
Powered by phpBB © 2001 - 2006, phpBB Group