Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > Определение размеров текста


Автор: Elfet 8.8.2005, 14:01
Юзверь пишет какой-то текст, выбираеть какой-то шрифт, а мне нужно ровно разместить его на картинке. Размеры картинки я знаю, а вот как определить размеры получающегося текста? smile

Автор: Akina 8.8.2005, 14:17
Берем API-шную TextWidth, сообщаем ей строку и параметры шрифта, а она в ответ - его ширину... отцентрировать уж как-нить сам...

Код

textWidth = CInt(Me.CreateGraphics().MeasureString(Text, Font).Width)


Автор: Akina 8.8.2005, 14:27
Тьфу, черт, это же PHP! ... ну посмотри swftext->getwidth() и swffont->getwidth()

Автор: Irokez 8.8.2005, 14:34
какая библиотека то?
если GD, то: http://php.net/imagettfbox

Автор: Mal Hack 8.8.2005, 14:46
Akina 5 баллов smile)

Цитата(Akina @ 8.8.2005, 15:27)
swftext->getwidth() и swffont->getwidth()

Это для ShokWare вроде как...

Я думаю тут просто надо воспользоваться: http://php.rinet.ru/manual/en/function.imagefontwidth.php, т.к. доступа к канве в ПХП - нет.
А лучше http://php.rinet.ru/manual/en/function.imageftbbox.php (смотри в комменты).

Добавлено @ 14:47
Эх, Ирокез опередил smile

Автор: S.A.P. 8.8.2005, 15:00
Так если ему надо уместить шрифт в рамки, знать размер текста не достаточно.

Могу ошибаться, но можно попробовать нарисовать текст на прозрачном фоне, сжать его и перетащить на картинку c помощью imageCopyResized().

Автор: Irokez 8.8.2005, 15:13
Цитата(Perchilla @ 8.8.2005, 15:00)
Так если ему надо уместить шрифт в рамки, знать размер текста не достаточно.

Могу ошибаться, но можно попробовать нарисовать текст на прозрачном фоне, сжать его и перетащить на картинку c помощью imageCopyResized().

изврат smile ImageTTFBox как раз таки эту рамку и покажет

Автор: S.A.P. 8.8.2005, 15:19
Цитата(Irokez @ 8.8.2005, 15:13)
изврат smile ImageTTFBox как раз таки эту рамку и покажет
не понял меня smile .

Цитата(Elfet @ 8.8.2005, 14:01)
Юзверь пишет какой-то текст, выбираеть какой-то шрифт, а мне нужно ровно разместить его на картинке
размеры текста узнали, дальше что? smile .

Автор: Irokez 8.8.2005, 16:59
Цитата(Perchilla @ 8.8.2005, 15:19)
не понял меня smile .

неа smile

Автор: Mal Hack 8.8.2005, 17:03
Perchilla у обоих функций есть параметр size - разсер шрифта. Мы выясняем сколько занимает текст в дефолтном варианте. Затем находим разницу по координатам и делаем соответствующее уменьшение размера шрифта уже когда пишем текст на нужной картинки черех http://php.rinet.ru/manual/en/function.imagefttext.php
поэтому смысла использовать CopyResampled нету.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)