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:

Pixel -> Points und vis a vis

 
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
E-P-S



Anmeldungsdatum: 16.09.2004
Beiträge: 500
Wohnort: Neuruppin

BeitragVerfasst am: 22.01.2008, 21:05    Titel: Pixel -> Points und vis a vis Antworten mit Zitat

Mal ne Frage. Das Thema zermürbt mir nämlich schon seit gestern mein Hirn.

Ich beschäftige mich ja gerade mit der FreeType Lib. Nun lädt diese einen Font in der Größenangabe POINTS. Ich würde aber lieber PIXEL verwenden.

Nun hab ich schon diverse Foren abgegrast und auch Google angestrengt und auch viele, viele Beispiele und Codeschnipsel etc. gefunden die mich jedoch nur noch mehr verwirren.

Daher meine allgemeine Anfrage:

Wie zum Henker komme ich nun korrekt von PIXEL nach POINTS?

Hintergrund: Ich möchte den Font so laden das - egal auf welchem System das Programm später läuft - der geladene Font z.B. 33 Pixel hat. Meiner Meinung nach kann das doch eigentlich nicht so schwer sein, dennoch grabbeln die Beispielcodes hier mit GetDeviceCaps und allen möglichen Berechnungen herum.

Vielen, vielen Dank schonmal.
_________________
Man kann sich öfter als zweimal im Leben halb tot lachen.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
croco97



Anmeldungsdatum: 04.11.2005
Beiträge: 260

BeitragVerfasst am: 22.01.2008, 22:14    Titel: Antworten mit Zitat

Die Einheit "point" ist für den Druck auf Papier gedacht. Dort ist 1 pt = 0,25 mm nach DIN. Auf dem Bildschirm macht das aus zwei Gründen wenig Sinn. Erstens weiss die Software nichts von der Geometrie des Bildschirms und damit nicht, wie gross irgendein grafisches Objekt dort erscheint. ("Software an Buchstabe, wie gross bist du? - Buchstabe an Software: Ich bin 10 m hoch - du läufst auf einem ZX81 ..." zwinkern) Und zweitens ist dort alles eh relativ. Du kannst eine 12 pt-Schrift so gross oder klein darstellen wie du willst. Das nennt man dann Zoomen. Lediglich das Verhältnis der Fontgrössen zueinander ist definiert. Stell dir einen 1000 pt-Schriftzug vor, der innerhalb eines Flugsimulators auf einem Gebäude montiert ist. Je nach Entfernung zum Flugzeug ist er nun mal klein oder gross.

Was kannst du praktisch machen? Du kannst dir einen Standard festlegen. Z.B. SXGA-Schirm. Auf dem gibst du mit einem Standard-Editor die Buchstaben einer 12-pt-Schrift aus, machst einen Screenshot in einen Image-Viewer und zählst dort die Pixel aus. Voila, hast du eine Umrechnung. Aber universell gültig ist die natürlich nicht.

Viele Grüsse!

Croco
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Jojo
alter Rang


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

BeitragVerfasst am: 22.01.2008, 22:17    Titel: Antworten mit Zitat

die umrechnung nach point nimmt allerdings das betriebssystem vor und das kann die resultierende größe schätzen. da diese allerdings nicht immer stimmt (bsp: 17" und 19" TFTs haben die selbe maximale auflösung!), wird die schrift niemals einheitlich groß sein. Aber das wäre nur halb so schlimm, wenn diese Umrechnung nicht auch noch OS zu OS variiert...
_________________
» 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
E-P-S



Anmeldungsdatum: 16.09.2004
Beiträge: 500
Wohnort: Neuruppin

BeitragVerfasst am: 22.01.2008, 22:28    Titel: Antworten mit Zitat

Vielleicht hab ich mich ja doof ausgedrückt. Die Schrift soll NICHT auf jedem Monitor gleich groß sein im Sinne von 1cm hoch.

Sie soll aber auf jedem PC 33 Pixel ergeben. Wenn man einen Font lädt und hierbei für die gewünschte Größe Points angeben muß, diese aber wiederum an die Auflösung des jeweiligen Monitors oder PCs gebunden sind und das Betriebssystem dies beachtet, dann könnte es doch passieren das ich zwar angebe (als Beispiel) lade den Font mit 40 Points so das es 33 Pixel ergibt und stattdessen ergibt es beim User aber 35 Pixel weil er einen größeren Monitor oder so hat - das möchte ich nur vermeiden.

Oder liege ich mit dieser Annahme falsch und die 40 Points ergeben in jedem Fall und auf jedem PC 33 Pixel?
_________________
Man kann sich öfter als zweimal im Leben halb tot lachen.
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: 22.01.2008, 22:32    Titel: Antworten mit Zitat

ergeben sie zumindest bei normal eingestellter schriftgröße, also kleine schriftarten (96 DPI).
_________________
» 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
E-P-S



Anmeldungsdatum: 16.09.2004
Beiträge: 500
Wohnort: Neuruppin

BeitragVerfasst am: 22.01.2008, 22:51    Titel: Antworten mit Zitat

Siehste, da gehts schon los. Von sowas wie "kleine Schriftart eingestellt" soll das ganze nämlich unabhängig sein.

Stell dir einfach vor ich möchte das ganze für ein Grafikprogramm haben wo man Text in ein Bild macht. Wenn ich da 33 Pixel Schrifthöhe angebe soll die Schrift gefälligst auch 33 Pixel hoch sein und nicht nur dann wenn ich "kleine Schriftart" eingestellt hab.

Wenn ich ein Rechteck von 50 x 70 Pixel zeichne soll dies ja schließlich auch nicht plötzlich 70 x 100 groß sein zwinkern

So lässt es sich wohl am besten beschreiben.
_________________
Man kann sich öfter als zweimal im Leben halb tot lachen.
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: 22.01.2008, 22:52    Titel: Antworten mit Zitat

ist mir schon klar, ich wollte nur meinen wissensstand mitteilen grinsen
_________________
» 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
croco97



Anmeldungsdatum: 04.11.2005
Beiträge: 260

BeitragVerfasst am: 23.01.2008, 12:51    Titel: Antworten mit Zitat

Mach's doch so, wie ich oben geschrieben habe. Dann kriegst du deine Beziehung. Z.B. 12 pt = 20 Pixel hoch ==> pixel = 20/12 pt.

Ne objektive Relation kann es nicht geben. Warum, habe ich dir auch oben geschrieben.

Grüsse!

Croco
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
MisterD



Anmeldungsdatum: 10.09.2004
Beiträge: 3071
Wohnort: bei Darmstadt

BeitragVerfasst am: 23.01.2008, 18:39    Titel: Antworten mit Zitat

Wenn du das wirklich für ein Grafikprogramm benutzen willst ist die Lib wahrscheinlich einfach nur fehlplatziert da sie zur Textausgabe ist und nicht zur bearbeitung von Vektorgrafiken, du müsstes das File wohl selbst einlesen, dir die Vektorgrafiken rausziehen und damit dann arbeiten, dann kannste die auch strecken und falten wie's dir passt..
_________________
"It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration."
Edsger W. Dijkstra
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