Автор:
Алексей Немиро | добавлено: 29.09.2011, 15:16 | просмотров: 2952 (1+) | комментариев:
0 | рейтинг:
x10
Простой пример показывает, как на C# можно преобразовать пиксели (px) в em.
Image bmp = new Bitmap(100, 100);
Graphics g = Graphics.FromImage(bmp);
int pixelSize = 12; // 12 пикселей
float em = g.DpiY * pixelSize / 72; // размер текста в em
// размер em можно использовать для прорисовки текста, например, при помощи GraphicsPath
// если понадобится получить размер текст перед выводом,
// то нужно учитывать, что размер может не совпадать и нужно делать пересчет
Font f = new Font("Arial", pixelSize, FontStyle.Regular, GraphicsUnit.Pixel);// важно - GraphicsUnit.Pixel - пиксели
SizeF s = g.MeasureString("Kbyte.Ru", f);
float textWidth = s.Width * (g.DpiX / 72); // истинная ширина текста
float textHeight = s.Height * (g.DpiY / 72); // истинная высота текста