![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Пропорциональное изменение размера шрифта [D7, XP]
igorium © (2011-11-03 08:50:00)Всем привет.
Есть текст, набранный шрифтом с размером S (font.size := S).
Вывожу различную графику и данный текст в JPG-файл.
Требуется увеличить всё в X раз.
Вся графика увеличивается, банальным домножением на Х, а шрифт становится маленьким (font.size := S*X).
В чем я не прав?
Германн (2011-11-04 23:44:00) [1]
> Сергей М. © (04.11.11 17:38) [22]
>
>
> > KilkennyCat © (04.11.11 15:43) [21]
>
>
> Я вообще-то о Height и Size и их вовсе не абстрактности)
> А ты фиг знает о чем говоришь)
Он о жизни вообще-то. :)
<offtop>
Я её узнал, когда поперла у меня дальнозоркость. Чтоб не тратить ни деньги, ни время на заказ и покупку очков, первым делом попробовал в винде поставить "крупный шрифт". Так почти все программы стали изображаться "коряво".
</offtop>
KilkennyCat (2011-11-04 18:08:00) [2]а я о вычислении высоты строки при отрисовке
Сергей М. (2011-11-04 17:38:00) [3]
> KilkennyCat © (04.11.11 15:43) [21]
Я вообще-то о Height и Size и их вовсе не абстрактности)
А ты фиг знает о чем говоришь)
KilkennyCat (2011-11-04 15:43:00) [4]
> Сергей М. © (04.11.11 15:30) [20]
понял. мы о разном говорим :)
Сергей М. (2011-11-04 15:30:00) [5]
> если я узнаю высоту строки
Да что значит "узнаю" ?
Ты ее не "узнаешь", а задаешь самтакую какую тебе нужно заданием св-ва Height)
Если фонт не кривой, то ни один символ в его составе не вылезет по высоте за указанную тобой высоту в пикселах.
Сергей М. (2011-11-04 15:27:00) [6]
> некоему Width
Пардон, Height
Сергей М. (2011-11-04 15:10:00) [7]
> Anatoly Podgoretsky
Нет никакой разницы.
Size однозначно соответствует некоему Width и наоборот.
в ф-ции прямой и обратной конвертации фигурирует Font.PixelsPerInch, который постоянен.
KilkennyCat (2011-11-04 15:08:00) [8]
> Получилось более-менее терпимо
вот. более-менее... но не 100%
Я лет 10 назад вынужден был полностью изучить ttf, как оно все рисуется, полностью писать свой DrawText, с учетом сдвига букв, когда верхняя часть буквы может отрисовываться над нижней частью буквы рядом...
И мне сейчас влом проделывать такой объем работ.
я хочу мультилайн. я хочу верить, что если я узнаю высоту строки "QWERTYUIOPASDFGHJKLZXCVBNM,qwertyuiopasdfghjklzxcvbnm" то ниче никуда не выползет.
а получается более-менее.
Дададад (2011-11-04 14:41:00) [9]Тоже над этим когда-то бился. Остановился на том, что при смене имени шрифта приходилось отрисовывать один (самый безобидный символ) и высчитывать коффицент. Получилось более-менее терпимо
Anatoly Podgoretsky (2011-11-04 14:41:00) [10]Высота := Font.Size;
Font.Size := Font.Size * 5;
Anatoly Podgoretsky (2011-11-04 14:36:00) [11]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.
KilkennyCat (2011-11-04 14:33:00) [12]
> он будет врисован с высотой, задуманной автором фонта.
осталось задать идиотский вопрос - как эту высоту узнать?
Сергей М. (2011-11-04 13:18:00) [13]он будет врисован с высотой, задуманной автором фонта.
тут никакие ухищрения с "универсальными" коэффициентами масштабирования не помогут - коэф-т будет зависеть исключительно от конкретного ряда символов конкретного чарсета конкретного фонта.
KilkennyCat (2011-11-04 11:52:00) [14]угу. и что тогда еще учитывать, чтобы знать, с какой все-таки высотой он будет врисован?
Сергей М. (2011-11-04 11:00:00) [15]
> KilkennyCat © (04.11.11 10:07) [9]
Сдается мне что ты неверно понимаешь логику формирования растрового образа символа.
Задание высоты N будущего символьного растра вовсе не означает что любой символ из данного чарсета данного фонта при рендеринге будет "врисован" в растровое поле данной высоте точно по высоте N.
KilkennyCat (2011-11-04 10:07:00) [16]происходит не совсем точное вычисление высоты. в результате, у меня сотня, две, три сотни записей отображаются нормально, а потом бац - либо считает, что должна быть еще одна строка и оставляет много пустого места, либо наоборот, подрезает.
ну, и как только я все отлажу, добьюсь везде счастия, я включаю крупный шрифт и получаю эту же проблему заново.
А казалось бы, векторы, точность, 2*2=4....
Германн (2011-11-04 00:34:00) [17]
> KilkennyCat © (03.11.11 23:13) [7]
>
> и когда масштабирование для слабовидящих? у меня многострочность
> криво выходит. добавить забавных коэффициентов пришлось.
>
>
Поясни.
Крупный шрифт чем мешает?
KilkennyCat (2011-11-03 23:13:00) [18]и когда масштабирование для слабовидящих? у меня многострочность криво выходит. добавить забавных коэффициентов пришлось.
Сергей М. (2011-11-03 22:12:00) [19]У меня и в теории и на практике оно ведет себя вполне адекватно.
Что я делаю неправильно ?)
KilkennyCat (2011-11-03 22:03:00) [20]ага. в теории. а на практике она у мня сейчас ведет себя как очень абстрактная и как очень зараза. пришлось написать классический комментарий "а единичку мы прибавили потому, что без этого работает хреново"