![]() |
|
Модераторы: LSD, AntonSaburov |
![]()
|
|
| Beard |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 228 Регистрация: 5.7.2005 Где: Санкт-Петербург Репутация: нет Всего: 9 |
Здравствуйте!
Хочется научиться получать высоту символа в пикселях, который нарисует Graphics2D через drawString() или drawChars() для определенного java.awt.Font. Вообще задача такая: надо создать java.awt.Image, состоящее только из одной буквы, причем размер (ширина X высота) картинки должен быть минимальным, т.е. буковка ровно влазит в эту картинку. На данный момент делаю через java.awt.image.BufferedImage, в котором его Graphics2D (BufferedImage::createGraphics()) рисую эту букву. Ширину вроде знаю как получать, хотя тоже не до конца уверен в правильности, а вот высоту... Буду рад любым предложениям |
|||
|
||||
| Alexandr87 |
|
|||
![]() дыкий псых ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1459 Регистрация: 27.11.2004 Где: Алматы, Казахстан Репутация: нет Всего: 39 |
Думаю Вам стоит обратить внимание на класс FontMetrics.
Получить его можно g.getFontMetrics (где g - объект класс Graphics, с уже установленным шрифтом). У него есть такие методы как charWidth(char c1) и getHeight(). Первый возвращает ширину данного символа, а второй высоту строки установленного шрифта. |
|||
|
||||
| Beard |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 228 Регистрация: 5.7.2005 Где: Санкт-Петербург Репутация: нет Всего: 9 |
Именно им и пользуюсь, и ширину получаю этим способом А вот getHeight() возвращает не совсем то что нужно - на сколько я помню height = leading + ascent + descent (ну или в обратном порядке - не помню с какой стороны) , так что если буковка без закорючки снизу, то лучше взять FontMetrics.getAscent(), но и то это скорее всего будет больше высоты буковки... Добавлено @ 14:34 В смысле - все символы имеют разную высоту |
|||
|
||||
| LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 38 Всего: 538 |
Ну тогда используй getStringBounds().
-------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
| Beard |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 228 Регистрация: 5.7.2005 Где: Санкт-Петербург Репутация: нет Всего: 9 |
||||
|
||||
| Beard |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 228 Регистрация: 5.7.2005 Где: Санкт-Петербург Репутация: нет Всего: 9 |
Вроде нашел:
где _font - наш java.awt.Font, который у java.awt.Graphics2D graphics2D, _char - наш символ (пр. тип char) Всем спасибо! |
|||
|
||||
![]()
|
| Правила форума "Java" | |
|
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, jk1. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Java: GUI и Java FX приложения | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |