| 
				
					|  | Das deutsche QBasic- und FreeBASIC-Forum Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
 |  
 
	
		| Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |  
		| Autor | Nachricht |  
		| Eternal_pain 
 
  
 Anmeldungsdatum: 08.08.2006
 Beiträge: 1783
 Wohnort: BW/KA
 
 | 
			
				|  Verfasst am: 21.10.2012, 17:12    Titel: Draw String limitiert? |   |  
				| 
 |  
				| Wollte mir der einfachheit ein eigenen Font für 'Draw String' zusammenstellen, was im grunde gut funktioniert und recht einfach ist, im moment scheint es mir aber das Irgendwas limitiert ist... sobald ich mehr als 128 Zeichen nutzen möchte funktioniert (zeichnet) Draw String nicht mehr... alles darunter funktioniert tedellos?! 
 Da weder hier, im englischen forum oder in der hilfe was zu finden ist frag ich mal hier....
 _________________
 
  |  |  
		| Nach oben |  |  
		|  |  
		| Jojo alter Rang
 
  
 Anmeldungsdatum: 12.02.2005
 Beiträge: 9736
 Wohnort: Neben der Festplatte
 
 | 
			
				|  Verfasst am: 21.10.2012, 18:39    Titel: |   |  
				| 
 |  
				| Beispielprogramm? Beachte, dass Draw String natürlicherweise nicht von selbst die Zeile umbricht bei zu langen Strings... vielleicht bist du nur am Fensterende angekommen... Deswegen wäre ein Beispiel sehr praktisch. _________________
 » Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
 
  |  |  
		| Nach oben |  |  
		|  |  
		| Eternal_pain 
 
  
 Anmeldungsdatum: 08.08.2006
 Beiträge: 1783
 Wohnort: BW/KA
 
 | 
			
				|  Verfasst am: 21.10.2012, 18:50    Titel: |   |  
				| 
 |  
				| Hab kein Beispiel mehr zur Hand: Ich hatte je eine bmp (256x256 und 512x512) mit 16x16 (256) Zeichen von chr(0-255)
 diese habe ich aus der BMP ausgelesen und in ein extra image geschrieben mit den erforderlichen Headerinformationen (Version 0, firstchar 0, lastchar 0, size 16/32, sizew 16/32, ..., ...)
 Alles hatte seinen platz, seine information und alles funktioniert, wenn ich maximal 128 Zeichen davon 'eingelesen/verarbeitet' habe zB 32-150... sobald ich aber alle bzw mehr zeichen wie 0-255 wollte ging nichts mehr...
 
 Ob ich über den Rand 'geschrieben' habe habe ich auch schon versucht und einen 'kürzeren String' zum testen genommen, aber daran lag es wohl nicht...
 
 Hab mir nun eine alternativ Routine geschrieben...
 
 Komisch scheint es mir dennoch...
 _________________
 
  |  |  
		| Nach oben |  |  
		|  |  
		| nemored 
 
  
 Anmeldungsdatum: 22.02.2007
 Beiträge: 4711
 Wohnort: ~/
 
 | 
			
				|  Verfasst am: 21.10.2012, 19:09    Titel: |   |  
				| 
 |  
				| lastchar=0 kommt mir komisch vor - müsste das nicht 255 sein? _________________
 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: 21.10.2012, 19:20    Titel: |   |  
				| 
 |  
				| meinte ja 255   
 hatte mir zum auslesen der chars 2 const erstellt
 firstchar und lastchar, der rest lief dann per schleifen
 
 Jedenfalls ging alles wenn ich nur einen teil der zeichen ausgelesen habe unabhängig welche und wenn es weniger als 128 waren... wenn ich versucht habe mehr als 128 auszulesen ging es nicht mehr, das image war aber 'voll'
 _________________
 
  |  |  
		| Nach oben |  |  
		|  |  
		| nemored 
 
  
 Anmeldungsdatum: 22.02.2007
 Beiträge: 4711
 Wohnort: ~/
 
 | 
			
				|  Verfasst am: 21.10.2012, 20:08    Titel: |   |  
				| 
 |  
				| mit eschrift von Volta kann ich problemlos 129 Zeichen laden (mehr habe ich aus Faulheit nicht ausprobiert). Weiß jetzt aber nicht, ob die Version identisch mit dem Code ist, den Volta im Portal gepostet hat. _________________
 Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1.
 |  |  
		| Nach oben |  |  
		|  |  
		| Muttonhead 
 
  
 Anmeldungsdatum: 26.08.2008
 Beiträge: 570
 Wohnort: Jüterbog
 
 | 
			
				|  Verfasst am: 21.10.2012, 21:55    Titel: |   |  
				| 
 |  
				| Als ich Charset2FBFont (in Purebasic) geschrieben hab, hatte ich auch schon ein solches Problem: 
 Aus meiner ReadMe:
 
  	  | Zitat: |  	  | Komplette BitmapFonts in 24bit sollten nicht mehr als 16-18 pt haben, ansonsten zeigt Freebasic den Font nicht mehr an.
 
 mögliche Lösungen:
 
 Mit kleinerem ASCII Bereich kann der Font auch grösser sein...
 | 
 |  |  
		| Nach oben |  |  
		|  |  
		| Eternal_pain 
 
  
 Anmeldungsdatum: 08.08.2006
 Beiträge: 1783
 Wohnort: BW/KA
 
 | 
			
				|  Verfasst am: 22.10.2012, 00:11    Titel: |   |  
				| 
 |  
				| Ich hatte 32x32 (waren eh zu gross) und 16x16 Charsets, beide konnte ich leider nicht 'komplett' nehmen... hab daher wie gesagt eine alternativ Routine geschrieben... _________________
 
  |  |  
		| Nach oben |  |  
		|  |  
		| volta 
 
 
 Anmeldungsdatum: 04.05.2005
 Beiträge: 1876
 Wohnort: D59192
 
 | 
			
				|  Verfasst am: 22.10.2012, 13:50    Titel: |   |  
				| 
 |  
				| Hi, solch große Fonts habe ich nie als Schriftart mit 256 Zeichen erstellt.
 Da ist es einfacher mit kleinerer Schrift in ein Image zu schreiben und dann das Image vergrößern.
 
  	  | Code: |  	  | Declare Sub ImageScale2x(ByVal As UInteger Ptr, ByVal As UInteger Ptr) 
 ScreenRes 480, 200, 32
 Width 480/8, 200/16 ' Fonts 8x16
 Dim As Any Ptr a, b
 Dim As String s= " Volta "
 Dim As Integer breit= Len(s)*8
 Dim As Integer hoch= 16
 
 a= ImageCreate(breit, hoch, 0)
 Draw String a,(0,0), s, -1
 Put (0,0), a, PSet
 Sleep 2000
 
 breit *=2 : hoch *=2
 b= ImageCreate(breit, hoch, 0)
 ImageScale2x a, b
 Put(0,0), b, PSet
 Sleep 3000
 
 ImageDestroy a
 breit *=2 : hoch *=2
 a= ImageCreate(breit, hoch, 0)
 ImageScale2x b, a
 Put(0,0), a, PSet
 Sleep 4000
 
 ImageDestroy b
 breit *=2 : hoch *=2
 b= ImageCreate(breit, hoch, 0)
 ImageScale2x a, b
 Put(0,0), b, PSet
 Sleep
 ImageDestroy a
 ImageDestroy b
 
 'ImageScale2x (source image ptr, Dest image ptr)
 Sub ImageScale2x(ByVal Image As UInteger Ptr, ByVal Dest As UInteger Ptr)
 
 Dim As UInteger B, D, E, F, H
 Dim As Integer j, k, ic, dc, dp, x, y, pitch
 ImageInfo Dest,dp,,,,Dest
 ImageInfo image,x,y,,pitch,image
 pitch \= 4
 
 '|A|B|C|
 '+-+-+-+  / |E0|E1|
 '|D|E|F| E  +--+--+
 '+-+-+-+  \ |E2|E3|
 '|G|H|I|
 
 For k = 0 To y-1
 For j = 0 To x-1
 If k Then B = Image[ic - pitch] Else B = Image[ic]
 If k = y-1 Then H = Image[ic] Else H = Image[ic + pitch]
 If j Then
 D = E
 E = F
 Else
 E = Image[ic]
 D = E
 EndIf
 If j < x-1 Then F = Image[ic + 1]
 If B <> H And D <> F Then
 If D = B Then Dest[dc] = D Else Dest[dc] = E
 If B = F Then Dest[dc + 1] = F Else Dest[dc + 1] = E
 If D = H Then Dest[dc + dp] = D Else Dest[dc + dp] = E
 If H = F Then Dest[dc + dp +1] = F Else Dest[dc + dp +1] = E
 Else
 Dest[dc] = E
 Dest[dc + 1] = E
 Dest[dc + dp] = E
 Dest[dc + dp +1] = E
 End If
 ic +=1
 dc +=2
 Next j
 ic = ic+pitch-x
 dc = dc+((dp-x)*2)
 Next k
 End Sub
 | 
 _________________
 Warnung an Choleriker:
 Dieser Beitrag kann Spuren von Ironie & Sarkasmus enthalten.
 Zu Risiken & Nebenwirkungen fragen Sie Ihren Therapeuten oder Psychiater.
 |  |  
		| Nach oben |  |  
		|  |  
		|  |  
  
	| 
 
 | 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.
 
 |  |