Ik zit met het volgende.
Als ontwikkelaar ben ik bezig met een applicatie, draait op WindowsXP en het betreft een Client/Server applicatie (geen web/html).
De gui is zodanig ontworpen dat het gebruik erg makkelijk is. Bijna alle windows mogelijkheden zoals minimise/maximize/scrolling etc zijn gestript van de schermen.Ook het uiterlijk is custom, het ziet er niet als een windows applicatie uit. De positie en grootte van de schermen zijn vooringesteld. Het complete beeldscherm wordt bedekt met een achtergrond bitmap waarop de dialogen worden weergegeven.
Probleem is echter dat het slechts voor 1 resolutie is ontworpen (1280*1024). Hierop is alles gebaseerd. Alle informatie past perfect op het beeldscherm, waarbij gebruik gemaakt wordt van 1 bepaald font (nu een bitmap font).
Verschillende klanten hebben gevraagd of het ook mogelijk is om de applicatie in lagere resoluties te draaien (voor op bv een bedrijfslaptop die meestal geen 1280 resolutie aankunnen of op 15" FTF schermen.).
Aangezien het een fixed gui is moet dus alle informatie die op een 1280 resolutie zichtbaar is ook goed weergegeven worden op minimaal 1024*768 resolutie.
De enige mogelijkheid is het inzetten van een kleiner font grootte zodat teksten zichtbaar blijven en niet 'uit het scherm lopen'.
Aangezien de applicatie bestaat uit meer dan 700 schermen is het ondoenlijk deze allemaal aan te passen. Na onderzoek is gebleken dat er een perfecte oplossing is met minimale inspanning voor de ontwikkelaars, nl het scalen van het font en dynamisch op runtime bepalen welke grootte gekozen moet worden afhankelijk van de gekozen resolutie.
Echter een lastig probleem komt hierbij om de hoek kijken. De resoluties schalen niet lineair. Dat wil zeggen dat de stap van 1280*1024 -> 1024*768 niet overeenkomt met het kiezen van een kleinere font grootte binnen hetzelfde lettertype. Of de letter is in de breedte niet correct of de hoogte klopt niet. Hierdoor vallen teksten net buiten het scherm of er is teveel ruimte over.
Ik heb zelf geexperimenteerd met het scalen van een font in een font editor (FontLab). Ik schaal het font zodanig dat deze de exacte grootte heeft voor een bepaalde resolutie. Dit werkt prima, echter na het scalen ziet het geconverteerde font er niet mooi uit. Deze is rafelig en er is duidelijk te zien dat er afrondingsfouten ontstaan.
Na veel lezen op internet heb ik gevonden waar dat aan ligt en hoe dit normaliter opgelost wordt.
In Truetype/Opentype fonts wordt dmv hinting aangegeven hoe een font weergegeven moet worden op een output device zoals een beeldscherm in bepaalde resoluties. Dit is een soort tabel waarin het font in bepaalde gevallen wordt getweakt zodat deze mooi blijft.
Ik ben echter geen caligraaf en heb nog nooit zelf fonts gemaakt en ik snap dus niet erg veel van dat hinting. Het is echt een vak apart !
Hier op het werk is geen kennis aanwezig, dus ik vraag hier of iemand tips kan geven waar ik moet zoeken. Hebben grafische bureaus kennis om een font te scalen en zodanig te hinten dat deze voldoet ? Ik denk dat iedereen die wel eens een font zelf heeft ontworpen in aanraking komt met het font hinting.
Voor de duidelijkheid wil ik nog even expliciet aangeven waar ik naar zoek :
- Neem een bestaand font (truetype/opentype)
- Met een font editor scalen naar de gewenste grootte voor een kleine reeks van mogelijke resoluties
- Hinting correct maken voor die resoluties
- Dit geconverteerde font opslaan, hernoemen naar een andere naam
- Dit nieuwe font (of evt meerdere) in de applicatie gebruiken
Als ik naar spelletjes kijk zie ik wat mogelijk is, nl het weergeven van de GUI in verschillende resoluties met behoud van informatie. Teksten zijn relatief even groot in de door de gebruiker gekozen resolutie. De gui van de applicatie dient ook zo mee te schalen.
Kan iemand hier iets over roepen ?
Als ontwikkelaar ben ik bezig met een applicatie, draait op WindowsXP en het betreft een Client/Server applicatie (geen web/html).
De gui is zodanig ontworpen dat het gebruik erg makkelijk is. Bijna alle windows mogelijkheden zoals minimise/maximize/scrolling etc zijn gestript van de schermen.Ook het uiterlijk is custom, het ziet er niet als een windows applicatie uit. De positie en grootte van de schermen zijn vooringesteld. Het complete beeldscherm wordt bedekt met een achtergrond bitmap waarop de dialogen worden weergegeven.
Probleem is echter dat het slechts voor 1 resolutie is ontworpen (1280*1024). Hierop is alles gebaseerd. Alle informatie past perfect op het beeldscherm, waarbij gebruik gemaakt wordt van 1 bepaald font (nu een bitmap font).
Verschillende klanten hebben gevraagd of het ook mogelijk is om de applicatie in lagere resoluties te draaien (voor op bv een bedrijfslaptop die meestal geen 1280 resolutie aankunnen of op 15" FTF schermen.).
Aangezien het een fixed gui is moet dus alle informatie die op een 1280 resolutie zichtbaar is ook goed weergegeven worden op minimaal 1024*768 resolutie.
De enige mogelijkheid is het inzetten van een kleiner font grootte zodat teksten zichtbaar blijven en niet 'uit het scherm lopen'.
Aangezien de applicatie bestaat uit meer dan 700 schermen is het ondoenlijk deze allemaal aan te passen. Na onderzoek is gebleken dat er een perfecte oplossing is met minimale inspanning voor de ontwikkelaars, nl het scalen van het font en dynamisch op runtime bepalen welke grootte gekozen moet worden afhankelijk van de gekozen resolutie.
Echter een lastig probleem komt hierbij om de hoek kijken. De resoluties schalen niet lineair. Dat wil zeggen dat de stap van 1280*1024 -> 1024*768 niet overeenkomt met het kiezen van een kleinere font grootte binnen hetzelfde lettertype. Of de letter is in de breedte niet correct of de hoogte klopt niet. Hierdoor vallen teksten net buiten het scherm of er is teveel ruimte over.
Ik heb zelf geexperimenteerd met het scalen van een font in een font editor (FontLab). Ik schaal het font zodanig dat deze de exacte grootte heeft voor een bepaalde resolutie. Dit werkt prima, echter na het scalen ziet het geconverteerde font er niet mooi uit. Deze is rafelig en er is duidelijk te zien dat er afrondingsfouten ontstaan.
Na veel lezen op internet heb ik gevonden waar dat aan ligt en hoe dit normaliter opgelost wordt.
In Truetype/Opentype fonts wordt dmv hinting aangegeven hoe een font weergegeven moet worden op een output device zoals een beeldscherm in bepaalde resoluties. Dit is een soort tabel waarin het font in bepaalde gevallen wordt getweakt zodat deze mooi blijft.
Ik ben echter geen caligraaf en heb nog nooit zelf fonts gemaakt en ik snap dus niet erg veel van dat hinting. Het is echt een vak apart !
Hier op het werk is geen kennis aanwezig, dus ik vraag hier of iemand tips kan geven waar ik moet zoeken. Hebben grafische bureaus kennis om een font te scalen en zodanig te hinten dat deze voldoet ? Ik denk dat iedereen die wel eens een font zelf heeft ontworpen in aanraking komt met het font hinting.
Voor de duidelijkheid wil ik nog even expliciet aangeven waar ik naar zoek :
- Neem een bestaand font (truetype/opentype)
- Met een font editor scalen naar de gewenste grootte voor een kleine reeks van mogelijke resoluties
- Hinting correct maken voor die resoluties
- Dit geconverteerde font opslaan, hernoemen naar een andere naam
- Dit nieuwe font (of evt meerdere) in de applicatie gebruiken
Als ik naar spelletjes kijk zie ik wat mogelijk is, nl het weergeven van de GUI in verschillende resoluties met behoud van informatie. Teksten zijn relatief even groot in de door de gebruiker gekozen resolutie. De gui van de applicatie dient ook zo mee te schalen.
Kan iemand hier iets over roepen ?
Intel i9-9900K | MSI MPG Z390 Gaming Pro Carbon | MSI RTX 2080Ti Gaming X Trio | Ballistix Sport LT (32GB) | MSI Optix MAG274QRF-QD 1440p | Samsung 970 EVO Plus (2TB) | NZXT Kraken X52 | Valve Index | Fractal Design R6 | Synology DS420j
