Aktuelle Zeit: 19.08.2019 21:25

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]




Ein neues Thema erstellen Auf das Thema antworten  [ 26 Beiträge ]  Gehe zu Seite 1, 2, 3  Nächste
Autor Nachricht
 Betreff des Beitrags: Typeface - Sprite-based Schrift-Include/Module
BeitragVerfasst: 06.08.2010 19:52 
Offline
Kommando SG1
Benutzeravatar

Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Pure Basic Module: Typeface - Sprite basierte Engine zum Anzeigen von Texten mit Bitmap-Fonts

Direkt Download des Includes: Typeface.pbi (Version 1.4.2)
Download einer ZIP mit Include, Beispiel, zwei Schriften und dem Editor: Typeface_20180930.zip

Features des Includes:
  • Aufbau der Funktionen im "PB"-Standard (Benutzen von Kostanten oder #PB_Any, der ganze Kram halt^^)
  • Einladen von Bitmap-Fonts (XML oder TF)
  • Unicode und Kerning Unterstützung
  • Anzeige und Abmessung von Texten auf dem Screen
  • Ändern der Farbe und Deckkraft
  • Ändern der Größe, Rotation (auch "3D") und Biegung
  • Ausrichtung und Kursivität
  • Anzeige-Clipping und Word Wrap

Features des Editors:
  • Laden und Speichern von Bitmap-Fonts (XML oder TF)
  • Erstellen von Typefaces aus TTF-Fonts
  • Bearbeiten des Font-Images
  • Bearbeiten der Zeichen und Kerningpaare

Bild

Details:

Dieses Include arbeitet (neben einem XML-Format) auch mit einem eigenen Dateiformat
(Typischerweise *.tf) in welchem die Daten zur Schrift und das Bild der Schrift enthalten sind.
Um dieses Dateiformat zu bearbeiten habe ich auch einen Editor geschrieben,
damit die Typefaces erstellt, bearbeitet und gespeichert werden können.
Mit dem Editor können auch komplett eigene Schriften erstellt werden, z.B. aus einem Bild,
auch dafür ist ein Beispiel enthalten, oder einfach eine TTF importiert werden.

XML-Aufbau:
Code:
<Typeface Version="1.4" Image="Example.png"> <!-- Dateiname des Bilds (relativ zur XML) -->
   <Attribute Name="Comment">Union Bytes</Attribute> <!-- Kommentare -->
   <Character Index="65"> <!-- Zeichenindex (hier das große A)-->
      <Source X="344" Y="38" Width="27" Height="38"/> <!-- Position und Größe im Bild -->
      <Outlay X="-8" Y="-8" Width="11" Height="22"/> <!-- Anzeigeoffset und Textflussgröße -->
   </Character>
   <KerningPair Left="39" Right="65" Amount="-1"/> <!-- Kerning-Paar mit beiden Zeichen und die Verschiebung -->
</Typeface>

_________________
Bild
 
BildBildBild


Zuletzt geändert von STARGÅTE am 30.09.2018 17:48, insgesamt 11-mal geändert.

Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Include - Typeface, Sprite3D-Schrift (färbbar, biegbar,
BeitragVerfasst: 06.08.2010 20:07 
Offline

Registriert: 13.07.2008 10:05
Also ich habe mir das bis jetzt nur mal ganz kurz angeschaut aber das ist einfach super. Ich werde mir das gleich morgen noch mal gründlich anschauen. Besonders die Effekte die damit möglich sind finde ich einfach super so was wollte ich schon lange.
mfg Christian+

_________________
Windows 8.1 Pro 64Bit | AMD Phenom II X4 955 @ 3.2 GHz | 4GB RAM | NVIDIA GeForce GTX 660


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Include - Typeface, Sprite3D-Schrift (färbbar, biegbar,
BeitragVerfasst: 06.08.2010 20:38 
Offline
Benutzeravatar

Registriert: 10.03.2005 14:01
Das sieht ja mal echt fett aus. :shock: :allright:

_________________
:::: WIN 10 :: PB 5.31 :: (x86) ::::


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Include - Typeface, Sprite3D-Schrift (färbbar, biegbar,
BeitragVerfasst: 07.08.2010 07:37 
Offline
Benutzeravatar

Registriert: 29.08.2004 08:48
Klasse, 1A

:allright: :allright: :allright:

_________________
Rings hat geschrieben:
ziert sich nich beim zitieren


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Include - Typeface, Sprite3D-Schrift (färbbar, biegbar,
BeitragVerfasst: 07.08.2010 13:55 
Offline
Benutzeravatar

Registriert: 24.11.2004 13:12
Wohnort: Germany
Klasse. Das man mit so wenig Code so viel erreichen kann :allright:

_________________
Alles ist möglich, fragt sich nur wie...
Projekte ThreadToGUI / EventDesigner v1.x / OOP-BaseClass-Modul / OPC-Helper DLL
PB v3.30 / v5.4x - OS Mac Mini OSX 10.xx / Window 10 Pro. (X64) /Window 7 Pro. (X64) / Window XP Pro. (X86) / Ubuntu 14.04
Downloads auf Webspace


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Include - Typeface, Sprite3D-Schrift (färbbar, biegbar,
BeitragVerfasst: 07.08.2010 17:00 
Offline

Registriert: 13.07.2008 10:05
So ich habe das heute mal gründlich durch getestet gefällt mir sehr gut und vor allem das Farbe ändern ist auch echt praktisch allerdings bin ich auf etwas seltsames gestoßen und zwar wird immer am Anfang ganz kurz der erste Buchstabe riesig angezeigt bevor er wieder verschwindet habe das Orginal Beispiel mal so angepasst dass man es da auch sieht.

Code:
XIncludeFile "Typeface.pbi"

InitSprite()
InitSprite3D()

Enumeration
 #Window
 #Typeface
 #TypefaceVariation
EndEnumeration

OpenWindow(#Window, 0, 0, 1000, 700, "Screen", #PB_Window_SystemMenu|#PB_Window_ScreenCentered)
OpenWindowedScreen(WindowID(#Window), 0, 0, WindowWidth(#Window), WindowHeight(#Window), 0, 0, 0)
 
 UsePNGImageDecoder()
 LoadTypeface(#Typeface, "Normal.tf")
 ;LoadTypeface(#Typeface, "Arial20.tf")
 CreateTypefaceVariation(#TypefaceVariation, #Typeface)
 
 
 Sprite3DQuality(1)
 
Repeat

 ClearScreen(0)

 Start3D()
 
  z.f = ElapsedMilliseconds()*0.001
 
  DisplayTypeface(#Typeface, 250, 100, "Mit 'Typeface' kann ganz normaler Text geschrieben werden.")
 
 Stop3D()
 
 FlipBuffers()

Until WindowEvent() = #PB_Event_CloseWindow

_________________
Windows 8.1 Pro 64Bit | AMD Phenom II X4 955 @ 3.2 GHz | 4GB RAM | NVIDIA GeForce GTX 660


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Include - Typeface, Sprite3D-Schrift (färbbar, biegbar,
BeitragVerfasst: 07.08.2010 19:24 
Offline
Kommando SG1
Benutzeravatar

Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Seh interessant, es blitzt wirklich immer ein großen M am anfang auf ...
Vermutlich hat es etwas mit der Variable : "TypefaceDX9\Transformed" zu tun

Durch hin und herprobieren, und ohne zu wissen ob es richtig ist, muss ich TypefaceDX9\Transformed = #True setzen vor einem Display.
Außerdem ist mir eben aufgefallen das TypefaceDX9\Vertice\Color nicht $BBGGRR verwendet sonden $RRGGBB, um es aber PB-Kompatibel zu machen, kommt noch n vertauschung mit rein.

Ist die die Lösung in der Prozedure: DisplayTypeface() ist also, oben folgende Zeilen zu ändern:
Code:
; [...]
 EndWith
 Color = Color&$00FF00 + (Color&$FF)<<16 + (Color&$FF0000)>>16
 *DX9\Vertice[0]\Color = Color
 *DX9\Vertice[1]\Color = Color
 *DX9\Vertice[2]\Color = Color
 *DX9\Vertice[3]\Color = Color
 *DX9\Transformed = 1
 If Angle Or Turn


Ich hab nun ZIP und Include aktuallisiert.

Und danke an alle denen mein Include gefällt.

_________________
Bild
 
BildBildBild


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Include - Typeface, Sprite3D-Schrift (färbbar, biegbar,
BeitragVerfasst: 07.08.2010 19:42 
Offline

Registriert: 13.07.2008 10:05
Super das ging ja flott werde gleich mal schauen ob jetzt alles klappt oder ob mir noch was auffällt das mit dem BBGGRR statt RRGGBB war ist mir auch schon aufgefallen hatte ich nur dann vergessen da ich es gleich am Anfang selbst geändert hatte.

_________________
Windows 8.1 Pro 64Bit | AMD Phenom II X4 955 @ 3.2 GHz | 4GB RAM | NVIDIA GeForce GTX 660


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Include - Typeface, Sprite3D-Schrift (färbbar, biegbar,
BeitragVerfasst: 10.08.2010 02:27 
Offline
Kommando SG1
Benutzeravatar

Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Oh jee Leute, mir ist eben ein riesen Fehler aufgefallen,
als ich eben eine kleine Test-Font (mit Rotem Rahmen) erstellt habe und da mal original Buchstabe mit DisplayTypeface verglichen habe, war DisplayTypeface leicht verschwommen gegenüber dem original.

Nach langem hin und her bin ich auf die Ursache gestoßen.
Wenn ich zB ein 32x32 Bild an Position 10, 10 mit DisplaySprite3D() darstelle, dann dachte ich erst, diese Koordianten kann ich auch für die Struktur einsetzen: x1=10 ... x2=42 ...
Falsch Gedacht!
denn dadurch würde ich eine verschiebung von 0.5 Pixel haben,
denn die Koordinaten der DX9-Struktur beziehen sich immer auf den Pixel-Mittelpunkt!
Es muss also: x1=9.5 ... x2=41.5 lauten!
Diese 0.5 Pixel, die alle Buchstaben verschoben wahren, vielen mir bei den Beispielen garnicht auf, nur eine leichte Unschärfe war du erkennen, da dachte ich aber das kommt vom Float-Clippen.

Lange Rede, kurzer Sinn, dieser (im Endeffekt doch recht schwere) Bug ist nun behoben!

_________________
Bild
 
BildBildBild


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Include - Typeface, Sprite3D-Schrift (färbbar, biegbar,
BeitragVerfasst: 12.07.2013 15:29 
Offline
Kommando SG1
Benutzeravatar

Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Hier ist ein Update meines Typeface-Includes für PB 5.20 und einigen Änderungen.
So kann eine Font nun einfach mit XML und einem Bild eingeladen werden (siehe Beispiel).

Typeface.zip (veraltet)
Benötigt PB 5.20 !

Features:
  • Textdarstellung mit beliebigen Zeichensätzen (XML & Bild)
  • Intensität und Farbe
  • (sauberer) Zoom, Rotation und Biegung
  • Kursivdarstellung mit beliebigen WInkeln
  • Unicode, Kerning und Zeichenabstand

Bild

XML-Aufbau:
Code:
<Typeface Image="Example.png"> <!-- Dateiname des Bilds -->
   <Character Index="65"> <!-- character with index -->
      <Source X="344" Y="38" Width="27" Height="38"/> <!-- Position und Größe im Bild -->
      <Outlay X="-8" Y="-8" Width="11" Height="22"/> <!-- Anzeigeoffset und Textflussgröße ->
   </Character>
   <KerningPair Left="39" Right="65" Amount="-1"/> <!-- Kerning-Paar mit beiden Zeichen und die Verschiebung -->
</Typeface>

_________________
Bild
 
BildBildBild


Zuletzt geändert von STARGÅTE am 30.09.2018 17:24, insgesamt 1-mal geändert.

Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 26 Beiträge ]  Gehe zu Seite 1, 2, 3  Nächste

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 0 Gäste


Sie dürfen keine neuen Themen in diesem Forum erstellen.
Sie dürfen keine Antworten zu Themen in diesem Forum erstellen.
Sie dürfen Ihre Beiträge in diesem Forum nicht ändern.
Sie dürfen Ihre Beiträge in diesem Forum nicht löschen.

Suche nach:
Gehe zu:  

 


Powered by phpBB © 2008 phpBB Group | Deutsche Übersetzung durch phpBB.de
subSilver+ theme by Canver Software, sponsor Sanal Modifiye