Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
braesident
Anmeldungsdatum: 15.04.2008 Beiträge: 189 Wohnort: Berlin
|
Verfasst am: 18.07.2014, 19:50 Titel: fragen zu Font erstellung |
|
|
Hallo Leute,
in der Referenz unter dem Befehl "Draw String" findet man ja eine gute Anleitung zum erstellen eines eigenen Font.
Jetzt sind mir dazu ein paar Fragen aufgekommen
dabei beziehe ich mich auf Beispiel 2
1. zu folgender Zeile -> p = myFont + IIf(myFont[0] = 7, 32, 4)
auf was bezieht sich myFont[0] = 7 ? ist das die versionsnummer?
und wieso dann +32 bzw +4 ? was sind das für Werte?
2. zu Zeile -> BSave "myfont.fbf", myFont, (Anzahl * 8 * 9 * 1)+32
ist der ImageHeader immer 32Byte groß
3. geschrieben steht das die Farbtife des Fonts die selbe sein muss wie die im Screenres. leider konnte ich nicht feststellen wo das für den Font festgelegt wird. Das Bsp. läuft allerdings auch mit Screenres x,y, 32
4. wieso werden keine Umlaute angezeigt beim benutzen des Fonts
beim einlesen hab ich unter letzter 154 angegeben. Beim speichern als BMP sind auch aller Umlaute mitgezeichnet, nur auf dem Bildschirm kommt kein Umlaut. Wärend Draw String (x,y), CHR(129) aber zum beispiel ein "ü" zeichnet.
Ich hoffe ihr könnt mir helfen und das es nicht zu viele Fragen auf einmal sind. Vielen Dank im Vorraus. LG |
|
Nach oben |
|
 |
nemored

Anmeldungsdatum: 22.02.2007 Beiträge: 4700 Wohnort: ~/
|
Verfasst am: 18.07.2014, 20:22 Titel: |
|
|
Hier findest du eine Aufschlüsselung für den Image-Header:
http://www.freebasic-portal.de/befehlsreferenz/interne-pixelformate-464.html (viel Lesestoff ).
Die "7" bedeutet, dass es sich um den "neuen" Header handelt (inzwischen auch schon ein paar Jahre alt, aber eben der FB-eigene Header statt der von QB), der 32 Byte lang ist, während der alte nur 4 Byte lang ist.
Der Font enthält die Bilddaten, und die sind auflösungsabhängig.
Zitat: | Das Bsp. läuft allerdings auch mit Screenres x,y, 32 |
Es ist ja für 32 Bit geschrieben, oder was genau ist die Frage?
Zitat: | 4. wieso werden keine Umlaute angezeigt beim benutzen des Fonts
beim einlesen hab ich unter letzter 154 angegeben. Beim speichern als BMP sind auch aller Umlaute mitgezeichnet, nur auf dem Bildschirm kommt kein Umlaut. Wärend Draw String (x,y), CHR(129) aber zum beispiel ein "ü" zeichnet. |
Ich verstehe gerade den Zusammenhang nicht. Wenn Draw String (x,y), CHR(129) korrekt dargestellt wird passt es doch. Wenn du Draw String (x,y), "ü" verwenden willst und das nicht funktioniert, solltest du überprüfen, ob in der Zeichenkodierung deiner Quelltextdatei "ü" auch wirklich als CHR(129) gespeichert wird. _________________ Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1. |
|
Nach oben |
|
 |
braesident
Anmeldungsdatum: 15.04.2008 Beiträge: 189 Wohnort: Berlin
|
Verfasst am: 18.07.2014, 21:03 Titel: |
|
|
achso, na weil im Bsp. screenres x,y, 8 verwendet wird bin ich von ausgegangen das das gesamte Bsp für 8 Bit geschrieben ist.
Draw String (x,y), Chr(129) funzt aber
Draw String (x,y), "ü" , ,myFont nicht |
|
Nach oben |
|
 |
nemored

Anmeldungsdatum: 22.02.2007 Beiträge: 4700 Wohnort: ~/
|
Verfasst am: 18.07.2014, 21:20 Titel: |
|
|
Mach mal ein PRINT ASC("ü"), ob das überhaupt stimmt.
Zitat: | achso, na weil im Bsp. screenres x,y, 8 verwendet wird bin ich von ausgegangen das das gesamte Bsp für 8 Bit geschrieben ist. |
Stimmt, mein Fehler - hatte ich auf die Schnelle falsch gelesen.
Habe nicht getestet, was dann passiert, aber die Speicherung wird wohl mit indizierten Farben stattfinden, was bei der Ausgabe in 32 Bit nicht funktionieren sollte - außer es wird inzwischen automatisch konvertiert. Würde mich jedenfalls nicht darauf verlassen.  _________________ Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1. |
|
Nach oben |
|
 |
Eternal_pain

Anmeldungsdatum: 08.08.2006 Beiträge: 1783 Wohnort: BW/KA
|
Verfasst am: 19.07.2014, 07:34 Titel: |
|
|
Das ist das leidige Thema der Umlaute... unter windows schreibst du normalerweise mit den ansi zeichencode wo 'ü' 252 ist während freebasic mit ascii code arbeitet wo 'ü' 129 ist... jetzt kannst du statt dem ü halt chr(129) benutzen oder, wenn du schon deinen eigenen font benutzt diesen entsprechend 'anpassen' (mach ich meistens so...) _________________
 |
|
Nach oben |
|
 |
nemored

Anmeldungsdatum: 22.02.2007 Beiträge: 4700 Wohnort: ~/
|
Verfasst am: 19.07.2014, 09:38 Titel: |
|
|
Zitat: | während freebasic mit ascii code arbeitet wo 'ü' 129 |
Stimmt so nicht ganz; auch 'ü' = 129 ist ANSI, nur eben eine andere Codepage. ASCII bewegt sich nur im Zahlenbereich von 0 bis 127. Bei allen größeren Werten muss man aufpassen, ob die gewünschten Werte passen (dabei gilt ganz allgemein Grafikscreenzeichen <> Konsolenzeichen* und in aller Regel Konsolenzeichen <> Quelltextzeichen** sowie Grafikscreenzeichen <> Quelltextzeichen** ...)
*) abhängig von der internen Einstellung der Konsole
**) abhängig von der Zeichenkodierung, in welcher der Editor speichert _________________ Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1. |
|
Nach oben |
|
 |
braesident
Anmeldungsdatum: 15.04.2008 Beiträge: 189 Wohnort: Berlin
|
Verfasst am: 19.07.2014, 18:02 Titel: |
|
|
oh, fehler erstmal erkannt. Drüber schlafen soll ja manchmal helfen.
mit >> Draw String ( x, y ), "hier ein " & Chr(129), , myFont << gehts natürlich.
Wegen der Sache mit der Farbtiefe. Wenn ich das jetzt richtig verstanden hab für die Farbtiefe hier festgelegt Code: | BSave "myfont.fbf", myFont, (Anzahl * 8 * 9 * 1)+32 |
und zwar bei diesem Bsp. ist es die 1 die für 8bit steht. Das heißt bei einem Screen mit 32bit müsste hier anstelle der 1 eine 4 stehen für 24 u. 32 bit !? |
|
Nach oben |
|
 |
nemored

Anmeldungsdatum: 22.02.2007 Beiträge: 4700 Wohnort: ~/
|
|
Nach oben |
|
 |
braesident
Anmeldungsdatum: 15.04.2008 Beiträge: 189 Wohnort: Berlin
|
Verfasst am: 19.07.2014, 23:21 Titel: |
|
|
na vielen Dank erstmal
Eine Frage hätt ich noch. Ich wollt mir gerade noch einige Bsp. zu FreeType2 ansehen. Bekomme aber immer eine Fehlermeldung vom Compiler
ld.exe: cannot find -lfreetype
woran könnte das liegen, ausser mir
Benutze FB 0.90.1
EDIT
hat sich erledigt. hab die libfreetype.dll.a gezogen |
|
Nach oben |
|
 |
braesident
Anmeldungsdatum: 15.04.2008 Beiträge: 189 Wohnort: Berlin
|
Verfasst am: 20.07.2014, 12:42 Titel: |
|
|
jetzt hab ich doch noch ein Problem mit Freetype2. und Zwar fehlt die freetype6.dll . Hab mir die datei aus Muttonhead seiner Projektvorstellung gezogen. Kann nur nicht rausfinden in welchen Ordner sie kopiert werden soll. Hab schon diverse möglichkeiten probiert. |
|
Nach oben |
|
 |
Elor
Anmeldungsdatum: 12.07.2013 Beiträge: 205 Wohnort: Konstanz
|
Verfasst am: 20.07.2014, 13:01 Titel: |
|
|
Hallo, also mit DLL's mach ich es immer so, das DLL's, die nur von einem Programm verwendet werden, im selben Verzeichniss stehen wie die EXE-
Datei. Alle DLL's die von verschiedenen Programmen verwendet werden, lege ich im Ortner "C:\WINDOWS\SYSTEM32" ab (XP). |
|
Nach oben |
|
 |
braesident
Anmeldungsdatum: 15.04.2008 Beiträge: 189 Wohnort: Berlin
|
Verfasst am: 21.07.2014, 12:11 Titel: |
|
|
ja vielen Dank, jetzt gehts |
|
Nach oben |
|
 |
|