Font size discrepancy in .NET GDI+?

我与影子孤独终老i 提交于 2019-12-04 03:27:31

there is no pattern in the discrepancy

As you can see, font sizes happen in increments of 0.75.

Edit: You can fine tune sizes if you do not use the font dialog, but the results I suspect will be less pleasing than the 'preferred' sizes.

Consider these tidbits:

  • An inch, as a result of however these things are decided in history, contains 72 points.
  • Usually people are running Windows at a logical resolution of 96 dots per inch.
  • Hmm, OK, we've got points, inches, and dots--three units to deal with here.
  • GDI wants to know how many dots to draw, and the user is selecting points.
  • Finally, the ratio of 72 points per inch / 96 dots per inch = 0.75 points per dot.

That 0.75 is unfortunate! It means that if we allow the user to choose points straight up, then the ideal rendering would draw on just part of a logical dot. It'd be nice if we could snap the entire rendering up or down to the nearest whole logical dot.

Ready? Here we go!


  • 11:
    • 11 points / 72 points per inch = 0.153 inches * 96 dots per inch = 14.667 dots, BARF!
    • Let's round up to 15 dots,
    • SO then 15 dots / 96 dots per inch * 72 points per inch = 11.25 points.

  • 12:
    • 12 / 72 * 96 = 16 dots.
    • I can live with that, no fudging necessary.

  • 16:
    • 16 / 72 * 96 = 21.3333, BARF!
    • Let's round down to 21 dots / 96 * 72 = 15.75, much nicer.

You get the idea.

Remember that these numbers will change if the user changes their logical resolution (96 dpi, 120 dpi, etc.)

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!