Текущий архив: 2012.02.12;
Скачать: CL | DM;
Вниз
Пропорциональное изменение размера шрифта Найти похожие ветки
← →
igorium © (2011-11-03 08:50) [0]Всем привет.
Есть текст, набранный шрифтом с размером S (font.size := S).
Вывожу различную графику и данный текст в JPG-файл.
Требуется увеличить всё в X раз.
Вся графика увеличивается, банальным домножением на Х, а шрифт становится маленьким (font.size := S*X).
В чем я не прав?
← →
Dimka Maslov © (2011-11-03 09:29) [1]Font.Size - вещь абстрактная. Надо пользоваться Font.Height.
← →
igorium © (2011-11-03 10:59) [2]Dimka Maslov © Спасибо
← →
KilkennyCat © (2011-11-03 18:39) [3]
> Font.Height.
тоже абстрактная зараза. слегка.
← →
Сергей М. © (2011-11-03 19:33) [4]Совсем не абстрактная.
← →
KilkennyCat © (2011-11-03 22:03) [5]ага. в теории. а на практике она у мня сейчас ведет себя как очень абстрактная и как очень зараза. пришлось написать классический комментарий "а единичку мы прибавили потому, что без этого работает хреново"
← →
Сергей М. © (2011-11-03 22:12) [6]У меня и в теории и на практике оно ведет себя вполне адекватно.
Что я делаю неправильно ?)
← →
KilkennyCat © (2011-11-03 23:13) [7]и когда масштабирование для слабовидящих? у меня многострочность криво выходит. добавить забавных коэффициентов пришлось.
← →
Германн © (2011-11-04 00:34) [8]
> KilkennyCat © (03.11.11 23:13) [7]
>
> и когда масштабирование для слабовидящих? у меня многострочность
> криво выходит. добавить забавных коэффициентов пришлось.
>
>
Поясни.
Крупный шрифт чем мешает?
← →
KilkennyCat © (2011-11-04 10:07) [9]происходит не совсем точное вычисление высоты. в результате, у меня сотня, две, три сотни записей отображаются нормально, а потом бац - либо считает, что должна быть еще одна строка и оставляет много пустого места, либо наоборот, подрезает.
ну, и как только я все отлажу, добьюсь везде счастия, я включаю крупный шрифт и получаю эту же проблему заново.
А казалось бы, векторы, точность, 2*2=4....
← →
Сергей М. © (2011-11-04 11:00) [10]
> KilkennyCat © (04.11.11 10:07) [9]
Сдается мне что ты неверно понимаешь логику формирования растрового образа символа.
Задание высоты N будущего символьного растра вовсе не означает что любой символ из данного чарсета данного фонта при рендеринге будет "врисован" в растровое поле данной высоте точно по высоте N.
← →
KilkennyCat © (2011-11-04 11:52) [11]угу. и что тогда еще учитывать, чтобы знать, с какой все-таки высотой он будет врисован?
← →
Сергей М. © (2011-11-04 13:18) [12]он будет врисован с высотой, задуманной автором фонта.
тут никакие ухищрения с "универсальными" коэффициентами масштабирования не помогут - коэф-т будет зависеть исключительно от конкретного ряда символов конкретного чарсета конкретного фонта.
← →
KilkennyCat © (2011-11-04 14:33) [13]
> он будет врисован с высотой, задуманной автором фонта.
осталось задать идиотский вопрос - как эту высоту узнать?
← →
Anatoly Podgoretsky © (2011-11-04 14:36) [14]Use Height to specify the height of the font in pixels.
To specify the size of the font in points, use the Size property instead.
← →
Anatoly Podgoretsky © (2011-11-04 14:41) [15]Высота := Font.Size;
Font.Size := Font.Size * 5;
← →
Дададад (2011-11-04 14:41) [16]Тоже над этим когда-то бился. Остановился на том, что при смене имени шрифта приходилось отрисовывать один (самый безобидный символ) и высчитывать коффицент. Получилось более-менее терпимо
← →
KilkennyCat © (2011-11-04 15:08) [17]
> Получилось более-менее терпимо
вот. более-менее... но не 100%
Я лет 10 назад вынужден был полностью изучить ttf, как оно все рисуется, полностью писать свой DrawText, с учетом сдвига букв, когда верхняя часть буквы может отрисовываться над нижней частью буквы рядом...
И мне сейчас влом проделывать такой объем работ.
я хочу мультилайн. я хочу верить, что если я узнаю высоту строки "QWERTYUIOPASDFGHJKLZXCVBNM,qwertyuiopasdfghjklzxcvbnm" то ниче никуда не выползет.
а получается более-менее.
← →
Сергей М. © (2011-11-04 15:10) [18]
> Anatoly Podgoretsky
Нет никакой разницы.
Size однозначно соответствует некоему Width и наоборот.
в ф-ции прямой и обратной конвертации фигурирует Font.PixelsPerInch, который постоянен.
← →
Сергей М. © (2011-11-04 15:27) [19]
> некоему Width
Пардон, Height
← →
Сергей М. © (2011-11-04 15:30) [20]
> если я узнаю высоту строки
Да что значит "узнаю" ?
Ты ее не "узнаешь", а задаешь сам такую какую тебе нужно заданием св-ва Height)
Если фонт не кривой, то ни один символ в его составе не вылезет по высоте за указанную тобой высоту в пикселах.
← →
KilkennyCat © (2011-11-04 15:43) [21]
> Сергей М. © (04.11.11 15:30) [20]
понял. мы о разном говорим :)
← →
Сергей М. © (2011-11-04 17:38) [22]
> KilkennyCat © (04.11.11 15:43) [21]
Я вообще-то о Height и Size и их вовсе не абстрактности)
А ты фиг знает о чем говоришь)
← →
KilkennyCat © (2011-11-04 18:08) [23]а я о вычислении высоты строки при отрисовке
← →
Германн © (2011-11-04 23:44) [24]
> Сергей М. © (04.11.11 17:38) [22]
>
>
> > KilkennyCat © (04.11.11 15:43) [21]
>
>
> Я вообще-то о Height и Size и их вовсе не абстрактности)
> А ты фиг знает о чем говоришь)
Он о жизни вообще-то. :)
<offtop>
Я её узнал, когда поперла у меня дальнозоркость. Чтоб не тратить ни деньги, ни время на заказ и покупку очков, первым делом попробовал в винде поставить "крупный шрифт". Так почти все программы стали изображаться "коряво".
</offtop>
Страницы: 1 вся ветка
Текущий архив: 2012.02.12;
Скачать: CL | DM;
Память: 0.52 MB
Время: 0.011 c