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:

BLoad

 
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
Eternal_pain



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

BeitragVerfasst am: 06.06.2007, 14:21    Titel: BLoad Antworten mit Zitat

Hi, da ich mich immernoch mit den verschiedensten Methoden beschöftige einen Font darzustellen aber auch herzustellen bzw konvertieren ect pp
hab ich mich gerade mit der eigentlich genialen draw string methode befasst,
ich habe also einen neuen Font erstellt, diesen ausgelesen und ihn in in
byte ptr / ImageCreate array geschrieben, soweit funktioniert auch alles...

nun hab ich es mit bsave gespeichert und wollte nun ein neuen Test machen mit den ganz einfachen zeilen

Code:

screen 19

dim dfont as any ptr

bload "tunga-size2.bsf",dfont

DRAW STRING (0, 500), "Das ist ein Test, Hallo liebe FreeBASIC Gemeinde_",, dFont

sleep



Der Text wird angezeigt, das ist nicht das Problem, das Problem ist, das nach Bload (egal in welcher auflösung und ob als ubyte oder any ptr) die grafik auf den screen geklatscht wird...
woran liegt das ?
_________________
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen MSN Messenger
csde_rats



Anmeldungsdatum: 07.01.2007
Beiträge: 2292
Wohnort: Zwischen Sessel und Tastatur

BeitragVerfasst am: 06.06.2007, 14:41    Titel: Antworten mit Zitat

hmm, ich würd' sagen DFont = 0, also standard adresse: screenptr.

lösung: DFont mit Allocate zuweisen...
_________________
If hilfreicher_Beitrag then klick(location.here)

Klick
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Jojo
alter Rang


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

BeitragVerfasst am: 06.06.2007, 14:49    Titel: Antworten mit Zitat

vlt könnte es helfen, dfont erst mit imagecreate zu erstellen?
_________________
» 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
Eternal_pain



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

BeitragVerfasst am: 06.06.2007, 14:50    Titel: Antworten mit Zitat

Danke,

(hätte ich die such-funktion benutzt wäre ich vermutlich auch drauf gekommen)

konnte es erstmal so lösen
Code:

screen 19,32

dim dfont as ubyte ptr

Function IsFile ( DataFile As String) As Integer
  Dim As Integer F
  F = Freefile
  Open DataFile For Input As #F
  Function = Lof(F)
  Close #F
  If Err <> 0 Then
    Print "Datei "+DataFile+" nicht gefunden !"
    Sleep
    End
  End If
End Function

dFont = Allocate(IsFile ("tunga-size2.bsf"))

bload "tunga-size2.bsf",dfont

DRAW STRING (0, 500), "Das ist ein Test, Hallo liebe FreeBASIC Gemeinde_",, dFont

sleep


leider kann ich so den font nur auf der selben auflösung und farbtiefe nutzen wie ich ihn gespeichert habe... geht wohl nichts über ein eigenes Format...
_________________
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: 06.06.2007, 14:51    Titel: Antworten mit Zitat

ja, grafikpuffer kann man immer nur in der sleben farbtiefe benutzen...
_________________
» 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
Eternal_pain



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

BeitragVerfasst am: 06.06.2007, 15:05    Titel: Antworten mit Zitat

eine ganz andere Frage (ohne neuen Thread lächeln)

wie rechne ich einen r,g,b wert in 16bit um ??? und umgekehrt natürlich ?!
_________________
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: 06.06.2007, 15:08    Titel: Antworten mit Zitat

1) mit farbe = rgb(r,g,b) zwinkern
2) farbe = r + 256 * g + 65536 * b
_________________
» 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
csde_rats



Anmeldungsdatum: 07.01.2007
Beiträge: 2292
Wohnort: Zwischen Sessel und Tastatur

BeitragVerfasst am: 06.06.2007, 15:16    Titel: Antworten mit Zitat

und noch ganz nebenbei: RGB ist ein makro, der in der fbgfx.bi definiert wird... also includen grinsen
_________________
If hilfreicher_Beitrag then klick(location.here)

Klick
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Eternal_pain



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

BeitragVerfasst am: 06.06.2007, 15:19    Titel: Antworten mit Zitat

hmm. ok.. funktioniert soweit.. aber ganz verstehen tu ichs nicht... da mir bei 16bit doch eigentlich nur 65536 Farben zur verfügung stehen ?!

also 16bit eigentlich 2 byte wie kann ich da einen farbwert höher als &hffff angeben ?!?! versteh ich nu nicht...
_________________
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: 06.06.2007, 15:52    Titel: Antworten mit Zitat

also: wenn du RGB benutzt, ist das auch (wie mein beispiel) 32 bit (farbgenauigkeit 0 bis 255). wenn du einen 16 bit screen (farbgenauigkeit 0 bis 63 glaub ich) verwendest, werden nur die "zweischenstufen" ausgelassen zwinkern
_________________
» 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
Eternal_pain



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

BeitragVerfasst am: 06.06.2007, 16:14    Titel: Antworten mit Zitat

Ich behaupte einfach mal es verstanden zu haben durchgeknallt grinsen
werd ein wenig damit herum experimentieren... meine Fonts sollen nämlich auch unabhängig vom screenmode funktionieren....
_________________
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen MSN Messenger
Michael712
aka anfänger, programmierer


Anmeldungsdatum: 26.03.2005
Beiträge: 1593

BeitragVerfasst am: 06.06.2007, 17:33    Titel: Antworten mit Zitat

Jojo hat Folgendes geschrieben:
ja, grafikpuffer kann man immer nur in der sleben farbtiefe benutzen...


Nein, soweit ich weiß geht es mittlerweile auch anders.
Imagecreate

Und siehe da, ich habe Recht Zunge rausstrecken
Man kann angeben, welche Farbtiefe das Bild hat
_________________
Code:
#include "signatur.bi"
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Jojo
alter Rang


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

BeitragVerfasst am: 06.06.2007, 17:34    Titel: Antworten mit Zitat

hab in FB schon lang nix mehr gemacht in richtung grafik... peinlich
_________________
» 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
Eternal_pain



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

BeitragVerfasst am: 06.06.2007, 19:07    Titel: Antworten mit Zitat

Zitat:

ImageCreate( width as integer, height as integer [, [ color as uinteger ] [, depth as integer ]] )


super sache grinsen
scheint mit der 0.17 aber leider noch net zu funktionieren...
_________________
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen MSN Messenger
csde_rats



Anmeldungsdatum: 07.01.2007
Beiträge: 2292
Wohnort: Zwischen Sessel und Tastatur

BeitragVerfasst am: 06.06.2007, 19:48    Titel: Antworten mit Zitat

0.18 ist der stand der dinge mit den Augen rollen Zunge rausstrecken
_________________
If hilfreicher_Beitrag then klick(location.here)

Klick
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Jojo
alter Rang


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

BeitragVerfasst am: 06.06.2007, 19:49    Titel: Antworten mit Zitat

nein, eben nicht.
0.18 ist nur CVS, also nicht offiziell.
_________________
» 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
Eternal_pain



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

BeitragVerfasst am: 06.06.2007, 20:00    Titel: Antworten mit Zitat

naja... ist eigentlich auch nur halb so wichtig.. denn das problem mit der farbtiefe jedenfalls hab ich dadurch das ich ein eigenes Format benutze gelöst *glaub* nur hab ich da ein riesen fehler drinne den ich gerade einfach nicht finden kann, so das ich statt fonts im besten Fall nur zeichensalat habe grinsen mit dem Kopf durch die Mauer wollen mit dem Kopf durch die Mauer wollen
_________________
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen MSN Messenger
volta



Anmeldungsdatum: 04.05.2005
Beiträge: 1876
Wohnort: D59192

BeitragVerfasst am: 06.06.2007, 20:03    Titel: Antworten mit Zitat

Hi Eternal_pain,
doch sollte mit der Version FB017b funktionieren (zumindest bei 32bpp).

und
Code:
'RGB32bit  >  RRRRRrrrGGGGGGggBBBBBbbb

'RGB16bit  >  00000000RRRRRGGGGGGBBBBB

RGB16bit = ((RGB32bit and &HF80000) Shr 8) + _
           ((RGB32bit and &H00FC00) Shr 5) + _
           ((RGB32bit and &H0000F8) Shr 3)

'oder aus r,g,b je 8bit
RGB16bit = ((r and &HF8) Shl 8) + _
           ((g and &HFC) Shl 3) + _
           ((b and &HF8) Shr 3)
--------------------------------------------------------

'RGB16bit  >  00000000RRRRRGGGGGGBBBBB

'RGB32bit  >  RRRRR000GGGGGG00BBBBB000

RGB32bit = ((RGB16bit and &HF800) Shl 8) + _
           ((RGB16bit and &H07E0) Shl 5) + _
           ((RGB16bit and &H001F) Shl 3)

'oder zu r,g,b
r = (RGB16bit and &HF800) Shr 8
g = (RGB16bit and &H07E0) Shr 3
b = (RGB16bit and &H001F) Shl 3

_________________
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
Eternal_pain



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

BeitragVerfasst am: 11.06.2007, 11:14    Titel: Antworten mit Zitat

Hab gerade eine kleine schwierigkein mit ImageCreate

Laut Hilfe (dieses mal hab ich vorher auch in die neue geguckt grinsen )
stehen in den ersten 4 Bytes die höhe und breite imformationen,
aber irgendwie mach ich einen fehler beim auslesen, oder hat sich da vielleicht doch wieder was geändert ?!

Ich bekomme jedes mal die werte 7 und 0


Code:

Screen 19,32

Dim test as any ptr
Dim breite as ushort
Dim hoehe as ushort

test=ImageCreate(100,100)

breite = Peek (Ushort,test)
hoehe = Peek (Ushort,test+2)

?breite, hoehe
sleep


bei der Methode das gleiche:
Code:

Screen 19,32

Dim test as ubyte ptr

test=ImageCreate(333,111)

?(test[1]*&h0100)+test[0],(test[3]*&h0100)+test[2]


sleep

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



Anmeldungsdatum: 07.01.2005
Beiträge: 1007
Wohnort: Regensburg/Oberpfalz

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

Du musst eine ältere Version der Hilfe haben... ode rich habe das noch nicht geupdatet. Seit FB v0.17 (oder schon früher? Nein, ich glaube es war 17) hat ein FB-Bild einen neuen Header. Er ist 32 Bytes lang, und hat dieses Format:

Code:
'' Image buffer header, old style
   ''
   type _OLD_HEADER field = 1
      bpp : 3 as ushort
      width : 13 as ushort
      height as ushort
   end type


   '' Image buffer header, new style (incorporates old header)
   ''
   type IMAGE field = 1
      union
         old as _OLD_HEADER
         type as uinteger
      end union
      bpp as integer
      width as uinteger
      height as uinteger
      pitch as uinteger
      _reserved(1 to 12) as ubyte

'      '' properties
'      declare property pixels() as ubyte ptr
   end type

(Aus der fbgfx.bi, Namespace FB.)

Hope, it helped.


Have a nice day
Ciao
Dusky_Joe
_________________
fully biological degradable

Once, the big wave arrives, you've got two ways, you can go:
Either, you ride it, or you don't do.
But, if you don't ride, you'll never know wether you'd have gone wet.
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