Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Пропорциональное изменение размера шрифта [D7, XP]


Страницы:   1 2

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]

ага. в теории. а на практике она у мня сейчас ведет себя как очень абстрактная и как очень зараза. пришлось написать классический комментарий "а единичку мы прибавили потому, что без этого работает хреново"


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо