Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

fragen zu Font erstellung

 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC.
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
braesident



Anmeldungsdatum: 15.04.2008
Beiträge: 189
Wohnort: Berlin

BeitragVerfasst am: 18.07.2014, 19:50    Titel: fragen zu Font erstellung Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden MSN Messenger
nemored



Anmeldungsdatum: 22.02.2007
Beiträge: 4700
Wohnort: ~/

BeitragVerfasst am: 18.07.2014, 20:22    Titel: Antworten mit Zitat

Hier findest du eine Aufschlüsselung für den Image-Header:
http://www.freebasic-portal.de/befehlsreferenz/interne-pixelformate-464.html (viel Lesestoff happy).
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
Benutzer-Profile anzeigen Private Nachricht senden
braesident



Anmeldungsdatum: 15.04.2008
Beiträge: 189
Wohnort: Berlin

BeitragVerfasst am: 18.07.2014, 21:03    Titel: Antworten mit 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.


Draw String (x,y), Chr(129) funzt aber
Draw String (x,y), "ü" , ,myFont nicht
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden MSN Messenger
nemored



Anmeldungsdatum: 22.02.2007
Beiträge: 4700
Wohnort: ~/

BeitragVerfasst am: 18.07.2014, 21:20    Titel: Antworten mit Zitat

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. happy
_________________
Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Eternal_pain



Anmeldungsdatum: 08.08.2006
Beiträge: 1783
Wohnort: BW/KA

BeitragVerfasst am: 19.07.2014, 07:34    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen MSN Messenger
nemored



Anmeldungsdatum: 22.02.2007
Beiträge: 4700
Wohnort: ~/

BeitragVerfasst am: 19.07.2014, 09:38    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
braesident



Anmeldungsdatum: 15.04.2008
Beiträge: 189
Wohnort: Berlin

BeitragVerfasst am: 19.07.2014, 18:02    Titel: Antworten mit Zitat

oh, fehler erstmal erkannt. Drüber schlafen soll ja manchmal helfen. grinsen
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
Benutzer-Profile anzeigen Private Nachricht senden MSN Messenger
nemored



Anmeldungsdatum: 22.02.2007
Beiträge: 4700
Wohnort: ~/

BeitragVerfasst am: 19.07.2014, 18:32    Titel: Antworten mit Zitat

Sieht so aus.
Siehe auch http://www.freebasic-portal.de/tutorials/schriftarten-unter-freebasic-44-s4.html
_________________
Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
braesident



Anmeldungsdatum: 15.04.2008
Beiträge: 189
Wohnort: Berlin

BeitragVerfasst am: 19.07.2014, 23:21    Titel: Antworten mit Zitat

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 grinsen
Benutze FB 0.90.1

EDIT
hat sich erledigt. hab die libfreetype.dll.a gezogen
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden MSN Messenger
braesident



Anmeldungsdatum: 15.04.2008
Beiträge: 189
Wohnort: Berlin

BeitragVerfasst am: 20.07.2014, 12:42    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden MSN Messenger
Elor



Anmeldungsdatum: 12.07.2013
Beiträge: 205
Wohnort: Konstanz

BeitragVerfasst am: 20.07.2014, 13:01    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
braesident



Anmeldungsdatum: 15.04.2008
Beiträge: 189
Wohnort: Berlin

BeitragVerfasst am: 21.07.2014, 12:11    Titel: Antworten mit Zitat

ja vielen Dank, jetzt gehts
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden MSN Messenger
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC. Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

 Impressum :: Datenschutz