Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
Manu

Anmeldungsdatum: 16.07.2006 Beiträge: 174 Wohnort: Bayern
|
Verfasst am: 29.12.2006, 20:58 Titel: Kann ich inmitten in einem Bild Text anzeigen lassen? |
|
|
Hallo,
kann ich, wenn ich ein Bild in mein QBasic Programm einfüge z.b. Rand dann in der Mitte vom Rand wieder Text anzeigen lassen z.b. also
nach folgendem Schema:
Code: |
ZEICHNE BILD IN DIE MITTE
Schreibe in die Mitte des Bildes "Hallo"
|
würde das gehen wenn ich einen Rand als Bild hätte?
danke
mfg Manu |
|
Nach oben |
|
 |
Michael Frey

Anmeldungsdatum: 18.12.2004 Beiträge: 2577 Wohnort: Schweiz
|
Verfasst am: 30.12.2006, 11:04 Titel: |
|
|
Ja.
Wäre aber noch Interresant zu wissen wie
Wie du ein Bild öffenen kannst, steht in der MonsterFAQ.
Beim Zentrierten Text gibt es mehrer Ansätze.
Eine möglichkeit:
Du berechnest die Mitte das Bildes
Code: | MitteX=(EndeX-AnfangY)/2+AnfangY
MitteY=(EndeY-AnfangY)/2+AnfangY |
Rechnest das in das Raster für Zeichen um.
(Jenach Screen verschieden gross, z.B. 8*14)
Code: | MitteX=MitteX/8
MitteY=MitteY/14 |
Als nächstes die Länge des Strings:
Das durch 2 (Die Hälfte der Zeichen soll Links neben der Mitte sein)
Dann mit MitteX verrechenen:
Coursor drauf setzen:
und Ausgeben
_________________ http://de.wikibooks.org/wiki/FreeBasic Jede Hilfe für dieses Buch ist Willkommen!
http://de.wikibooks.org/wiki/FreeBasic:_FAQ FAQ zu Freebasic (im Aufbau, hilfe Willkommen)
Neu mit Syntax Highlight |
|
Nach oben |
|
 |
Flo aka kleiner_hacker
Anmeldungsdatum: 23.06.2006 Beiträge: 1210
|
Verfasst am: 30.12.2006, 12:57 Titel: |
|
|
dann is aber das bild futsch...
vllt gehts so:
wohin geLOCATEt werden soll berechnen
wo das bild sein soll, ein schwarzes viereck mikt line (x1,y1)-(x2,y2),0,BF zeichnen
den text schreiben
und die bildmalroutine zu umändern, dass zuerst geprüft wird, ob auf dem punkt, wohin das aktuelle pixel hin soll, die farbe des textes ist...
WENN JA, nicht PSETten, WENN NEIN, PSETten...
ps: es ist nicht mehr der dritte advent  _________________ MFG
Flo
Satoru Iwata: Wer Spaß am Spielen hat, fragt nicht nach Grafik.
zum korrekten Verstaendnis meiner Beitraege ist die regelmaessige Wartung des Ironiedetektors unerlaesslich. |
|
Nach oben |
|
 |
Sebastian Administrator

Anmeldungsdatum: 10.09.2004 Beiträge: 5969 Wohnort: Deutschland
|
Verfasst am: 30.12.2006, 14:04 Titel: |
|
|
@kleiner_hacker: Das ist aber wesentlich ineffizienter, als bei der Schriftroutine Transparenz (=> Schriftzug als Bitmaske). Allein schon von der Zahl der POINT-Operationen her, die je nach Verfahren nötig wären, ist das von dir vorgeschlagene Verfahren viel langsamer. Außerdem müsstest du das Bild dann pixelweise mit PSET aufbauen und könntest keine schnellen Grafikbefehle verwenden. _________________
Die gefährlichsten Familienclans | Opas Leistung muss sich wieder lohnen - für 6 bis 10 Generationen! |
|
Nach oben |
|
 |
Jojo alter Rang

Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 30.12.2006, 14:18 Titel: |
|
|
Also auf qbasic.de gibt es eine seeehr schöne DrawFont-Routine, dich früher sehr gern benutzt habe. Die ist superschnell, transparent und ermöglicht sogar Schatten. _________________ » Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
 |
|
Nach oben |
|
 |
Mao
Anmeldungsdatum: 25.09.2005 Beiträge: 4409 Wohnort: /dev/hda1
|
Verfasst am: 30.12.2006, 14:29 Titel: |
|
|
Oder man baut sich einfach selbst eine.
Das is' mit Schnickschnack in gut 100 Zeilen untergebracht.  _________________ Eine handvoll Glück reicht nie für zwei.
--
 |
|
Nach oben |
|
 |
Jojo alter Rang

Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 30.12.2006, 14:32 Titel: |
|
|
die hatte aber dank bios-font-abfrage nur 20 zeilen oder so. die funktion finedest du unter anderem in meinem programm Dungeon 2 in der Datei Game.Bas. _________________ » Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
 |
|
Nach oben |
|
 |
Mao
Anmeldungsdatum: 25.09.2005 Beiträge: 4409 Wohnort: /dev/hda1
|
Verfasst am: 30.12.2006, 14:55 Titel: |
|
|
War aber selbstgebastelt und das erfreut einen ja immer.
Außerdem kann ich mir schlecht vorstellen, wie du den Standard-Schriftsatz aus dem Grafikkarten-RAM holen sollst, und gleichzeitig noch das ganze schattiert darstellen kannst.
Werd mir das trotzdem mal ansehen.
...Oder waren das etwa 20 Zeilen mit assemblierten Maschinen-Code? Dann ist das schon eher verständlich.  _________________ Eine handvoll Glück reicht nie für zwei.
--
 |
|
Nach oben |
|
 |
Jojo alter Rang

Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 30.12.2006, 17:14 Titel: |
|
|
das is mit peek und poke. die schrift kriegst du direkt ausm grafikspeicher (oder os) und die wird halt 2mal hingedruckt, einmal als "schatten" und ich habe die sub ja auch etwas modifiziert. das merkt man in dungeon 2.
ähm, naja vlt hab ich die ja sogar shcon aus dungeon 2 rausgeworfen, wer weiß? ich hatte sie in jedem fall mal drin. und so eine font-routine is wirklich schnell geschrieben ( ), hab schon einige geschrieben! _________________ » Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
 |
|
Nach oben |
|
 |
Mao
Anmeldungsdatum: 25.09.2005 Beiträge: 4409 Wohnort: /dev/hda1
|
Verfasst am: 30.12.2006, 21:02 Titel: |
|
|
Ich weiß, wie's geht und wie 'nen Schatten entsteht.
Und ich hab, as say, auch schon eine für Eigenbedarf geschrieben.
Aber mich wundert's halt, dass man nur mit BASIC-Instruktionen innerhalb von 20 Zeilen 'ne komplette Schriftroutine basteln kann, die den Schriftsatz aus'm Grafikspeicher holt (net Betriebssystem). _________________ Eine handvoll Glück reicht nie für zwei.
--
 |
|
Nach oben |
|
 |
Jojo alter Rang

Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 30.12.2006, 21:10 Titel: |
|
|
grafikspeicher kannste durch druch ein bisschen def seg bequem erreichen  _________________ » Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
 |
|
Nach oben |
|
 |
Mao
Anmeldungsdatum: 25.09.2005 Beiträge: 4409 Wohnort: /dev/hda1
|
Verfasst am: 31.12.2006, 13:08 Titel: |
|
|
Dann google ich mal ein bisschen, braucht man dafür nicht immer gleich ASM nehmen.  _________________ Eine handvoll Glück reicht nie für zwei.
--
 |
|
Nach oben |
|
 |
Jojo alter Rang

Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 31.12.2006, 15:24 Titel: |
|
|
Peek und Poke hat doch nix mit ASM zu tun
Das geht so ungefähr nach diesem Prinzip (aber ganz anders )
Code: |
Def Seg = &H1337
BitReihe = PEEK(Buchstabe * 1337 + Zeile)
Def Seg
|
_________________ » Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
 |
|
Nach oben |
|
 |
Mao
Anmeldungsdatum: 25.09.2005 Beiträge: 4409 Wohnort: /dev/hda1
|
Verfasst am: 31.12.2006, 15:32 Titel: |
|
|
Äh...naja, nicht direkt jedenfalls.
Aber für sowas nehm ich - bzw. hab ich genommen - Assembler.
Der Code müsste demzufolge pseudomäßig so heißen:
Segment 0x1337 (wie kreativ )
Hole Byte(?) von Offset X (X=ASCII-Code*1337+Zeile)
Standard-Segment herstellen
Ich glaub, damit hab ich in früher Zeit schonmal Grafiken auf den Bildschirm gebracht.  _________________ Eine handvoll Glück reicht nie für zwei.
--
 |
|
Nach oben |
|
 |
Jojo alter Rang

Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 31.12.2006, 15:40 Titel: |
|
|
so ungefähr ging das, wirklich Nur die Zahl whar natürlich aus KREATIVEN zwecken gewählt  _________________ » Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
 |
|
Nach oben |
|
 |
dreael Administrator

Anmeldungsdatum: 10.09.2004 Beiträge: 2529 Wohnort: Hofen SH (Schweiz)
|
Verfasst am: 31.12.2006, 16:34 Titel: Zeichengenerator-ROM |
|
|
Zum Thema Zeichengenerator: Dazu solltet Ihr INT 10h, AX=1130h vom VGA-BIOS verwenden, wie unter
http://www.ctyme.com/intr/rb-0158.htm
gezeigt, denn die physikalische Startadresse ist bei den vielfältigen Grafikkartenfabrikaten und deren VGA-BIOS keineswegs einheitlich! Praktisches Anwendungsbeispiel von mir davon:
http://www.dreael.ch/Deutsch/Download/WindowsBitmapBibliothek.html
SUB-Routine ErzeugeTextGrafik(). Bei der 14x8-Schrift muss man noch den Hinweis in meinem Artikel beachten. _________________ Teste die PC-Sicherheit mit www.sec-check.net |
|
Nach oben |
|
 |
|