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:

Draw String und Bitmap-Fonts

 
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
Westbeam



Anmeldungsdatum: 22.12.2009
Beiträge: 760

BeitragVerfasst am: 14.11.2012, 16:16    Titel: Draw String und Bitmap-Fonts Antworten mit Zitat

Hay, ich fürchte ich verstehe die Sache mit Draw String und den Fonts nicht so richtig. Ich habe hier ein .bmp Bild(1619x19 Pixel groß), welches die Schriftzeichen enthält. Dieses Bild lade ich in mein Programm und gebe einen String via Draw String und diesem Font aus. Allerdings sehe ich da nichts:
Code:
Dim As UByte Ptr myFont
ScreenRes 640,480, 32
myFont = ImageCreate(1619,19)
BLoad "font.bmp", myFont

Draw String (10, 10), "Test",, myFont

ImageDestroy myFont

Sleep

Vielleicht kann mir da jemand weiterhelfen? lächeln
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
volta



Anmeldungsdatum: 04.05.2005
Beiträge: 1876
Wohnort: D59192

BeitragVerfasst am: 14.11.2012, 16:47    Titel: Antworten mit Zitat

Hier findest du eine Anleitung:
http://www.freebasic-portal.de/tutorials/schriftarten-unter-freebasic-44-s4.html
So einfach wie du es versuchst ist das leider nicht. traurig
_________________
Warnung an Choleriker:
Dieser Beitrag kann Spuren von Ironie & Sarkasmus enthalten.
Zu Risiken & Nebenwirkungen fragen Sie Ihren Therapeuten oder Psychiater.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Westbeam



Anmeldungsdatum: 22.12.2009
Beiträge: 760

BeitragVerfasst am: 14.11.2012, 21:21    Titel: Antworten mit Zitat

Danke. neutral

Ich habe jetzt eine eigene Routine geschrieben, welche Bitmap-Fonts nutzt, zwar ziemlich unschön, aber sie funktioniert gut. zwinkern
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Eternal_pain



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

BeitragVerfasst am: 14.11.2012, 21:35    Titel: Antworten mit Zitat

Musste ich neulich auch; http://forum.qbasic.at/viewtopic.php?t=7973

Hab mir dann das hier schnell zusammengebastelt, sollte sich gut erweitern lassen.

Ist nur für gleiche Zeichenbreite (aber wie gesagt sollte sich das ausreichend erweitern lassen)

Beispiel Font (256x256px):


Code:

    Dim Shared FontGRX       as any ptr = Imagecreate(256,256) '256x256 (255x16x16)
    BLoad "font.bmp",FontGRX
   
    Sub FontDraw(byval fromX as Integer, byval fromY as Integer, byval drawString as String)
       
        Dim cChar as UByte
        Dim xChar as Integer
        Dim yChar as Integer
       
        For C as Integer = 0 to Len(drawString)-1
            cChar = drawString[C]
            yChar = Fix(cChar / 16)
            xChar = (cChar - (yChar*16))
   
            Put (fromX+(C*16),fromY),FontGRX,(xChar*16,yChar*16)-((xChar*16)+15,(yChar*16)+15),trans
        Next C
    End Sub

    '
    Imagedestroy(FontGRX)

_________________
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen MSN Messenger
nemored



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

BeitragVerfasst am: 15.11.2012, 00:57    Titel: Antworten mit Zitat

Code:
' yChar = Fix(cChar / 16)
yChar = cChar \ 16

ist da sicher schneller. Bei xChar vermute ich, das MOD schneller arbeitet, aber das müsste man testen.
_________________
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
volta



Anmeldungsdatum: 04.05.2005
Beiträge: 1876
Wohnort: D59192

BeitragVerfasst am: 15.11.2012, 17:03    Titel: Antworten mit Zitat

Hi Eternal_pain,
ist aber nicht das schönste Schriftbild für eine 190kb Datei (unten FontDraw):



Das ist eine 1,4kb BMP:

_________________
Warnung an Choleriker:
Dieser Beitrag kann Spuren von Ironie & Sarkasmus enthalten.
Zu Risiken & Nebenwirkungen fragen Sie Ihren Therapeuten oder Psychiater.


Zuletzt bearbeitet von volta am 15.11.2012, 17:18, insgesamt einmal bearbeitet
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
28398



Anmeldungsdatum: 25.04.2008
Beiträge: 1917

BeitragVerfasst am: 15.11.2012, 17:17    Titel: Antworten mit Zitat

Was spräche eigentlich gegen artgerechtes Rendering mit einer Bibliothek wie freetype?
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Eternal_pain



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

BeitragVerfasst am: 15.11.2012, 21:34    Titel: Antworten mit Zitat

Naja, war auch nur auf die schnelle als ersatz wegen dem 'draw string' Problem.

@nemored
Stimmt wohl beides, die integer division sollte wohl genauso gehen, weiss nicht wieso ich immer auf FIX bestehe... (war wohl immer der Meinung int würde ab einen gewissen punkt aufrunden, ist laut hilfe aber nicht so)
Und auch MOD 16 sollte das selbe bei ychar tun....
Danke

@volta
Über die grösse hatte ich mir bisher eigentlich keine Geadnken gemacht, ist allerdings schon richtig gross im Vergleich. (hier könnte man evtl noch was erreichen wenn man auf 8bit runter geht?! und natürlich nicht alle 255 Zeichen verwendet)
Das Schriftbild ist aus meinem Hangman-Halloween, da passt es toll rein lächeln
_________________
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen MSN Messenger
Jojo
alter Rang


Anmeldungsdatum: 12.02.2005
Beiträge: 9736
Wohnort: Neben der Festplatte

BeitragVerfasst am: 15.11.2012, 21:39    Titel: Antworten mit Zitat

Wenn du auf eine Farbe verzichtet, reichen sogar um genau zu sein 4 Bit bei der roten Schriftart...
_________________
» Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
nemored



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

BeitragVerfasst am: 15.11.2012, 23:52    Titel: Antworten mit Zitat

Zitat:
(war wohl immer der Meinung int würde ab einen gewissen punkt aufrunden, ist laut hilfe aber nicht so)

ist genau umgekehrt; FIX rundet in Richtung 0 (rundet negative Zahlen also auf)
_________________
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
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