2009-02-07 3 views
2

Я пытаюсь отобразить немного текста с использованием API-интерфейсов Core Graphics, и я сталкиваюсь с некоторыми концептуальными трудностями.Размер шрифта в Core Graphics

Я пытаюсь указать размер шрифта, используя CGContextSetFontSize. Параметр размера находится в части, которая называется «единиц текстового пространства». Что это? Как это относится к «em» единиц?

Благодаря

ответ

2

Я пытаюсь определить размер шрифта с помощью CGContextSetFontSize. Параметр размера находится в чем-то, называемом «единицами текстового пространства». Что это? Как он отображается в «em» единицах?

Чтобы ответить на ваш второй вопрос сначала, 1 em (последующий the CSS definition) будет равна указанной вами сумме.

«Текстовое пространство» основной графики «Graphics» происходит от пользовательского пространства. Существует дополнительная матрица преобразования, текстовая матрица, которая преобразует пространство пользователя в текстовое пространство. См. CGContextSetTextMatrix, How Quartz 2D Draws Text и Drawing Text.

По умолчанию текстовая матрица является идентификационной матрицей, поэтому текстовое пространство = пространство пользователя.

+0

Другими словами, по умолчанию это размер точки шрифта (например: 12 pt), если вы не измените матрицу преобразования. –

+0

№ Размер шрифта в кварце находится в текстовом пространстве, которое равно * после *, и применяются матрицы преобразования. 1 em = размер шрифта, несмотря ни на что. –

+0

Спасибо, Питер. Предположим, что текстовая матрица = единичная матрица (т. Е. Никаких преобразований). Было бы 1em = 1pixel? – EightyEight

Смежные вопросы