schrifthöhe berechnen



  • hola leute

    wie kann ich mir die schrifthöhe in pixel ausrechnen ?

    angenommen ich hol mir nen 10pt(oder heisst das em) font. wie kann ich mir die höhe in pixel ausrechnen, was er braucht ? bzw geht es auch umgekehrt ?
    das ich pt (bzw. em) berechnen will, wenn die schrift 15 pixel hoch sein soll.

    ich les da immer wieder was von 72 bzw. 96 dpi oder punkt per logical inch.
    wenn ich GetDeviceCaps mit LOGPIXELSY abfrage bekomm ich 96.

    auf http://www.codeproject.com/Questions/404605/Get-character-size-in-pixel rechnet er unter "Solution 2" irgendwas mit 72 rum. hab keinen plan wo der sich die aus den fingern saugt.

    Meep Meep

    kurzer nachtrag:
    seh ich das richtig, das wenn ich mit CreateFontIndirect in LOGFONT als lfHeight einen negativen wert eingebe, das das dann pixel sind ?


  • Mod

    In der MFC ist netter Code zu zu finden CFont::CreatePointFont...

    Umrechung 72 points/inch, 10 decipoints/Point

    int points = ::MulDiv(::GetDeviceCaps(hDC, LOGPIXELSY), points, 720);
    

    Und ja: Negativer Wert = Punkte. Auch das ist im MFC Code schon dokumentiert und zu lesen.


Anmelden zum Antworten