вот код:
---$im=imagecreatefromjpeg($shab);
$font_color = imagecolorallocate($im, 255, 255, 255);
imagettftext($center, $im,30,0,175,405,$font_color,"fonts/cyrillic_old.ttf",$name);---[b]
Спустя 16 минут, 21 секунда (8.11.2009 - 13:40) Lusya256 написал(а):
Ребят. Ну ответьте пожалуйста. Неужели никто не знает? Или потому, что я девушка?
! |
sergeiss Еще одно такое высказывание, и будет бан |
Спустя 1 час, 27 минут, 15 секунд (8.11.2009 - 15:07) Grazor написал(а):
а в чём проблема-то? высчитать координаты центра?
http://ru2.php.net/manual/en/function.imagettfbbox.php
http://ru2.php.net/manual/en/function.imagettfbbox.php
Спустя 1 час, 56 минут, 9 секунд (8.11.2009 - 17:03) Lusya256 написал(а):
Цитата (Grazor @ 8.11.2009 - 12:07) |
а в чём проблема-то? высчитать координаты центра? http://ru2.php.net/manual/en/function.imagettfbbox.php |
Я не понимаю какие именнно атрибуты и в какую часть кода вставить. Хелп плиз
Спустя 1 час, 26 минут, 55 секунд (8.11.2009 - 18:30) sergeiss написал(а):
Цитата (Lusya256 @ 8.11.2009 - 14:40) |
Неужели никто не знает? Или потому, что я девушка? |
М-да... Плохо, когда у человека комплексы...
Алгоритм простой.
С помощью imagettfbbox определяем размер, занимаемый текстом.
Далее просто находим разницу между шириной картинки, и шириной текста, делим ее пополам - это будет позиция вставки текста. Именно того текста, для которого мы находили занимаемый размер.
Спустя 45 минут, 43 секунды (8.11.2009 - 19:16) Lusya256 написал(а):
Цитата (sergeiss @ 8.11.2009 - 15:30) | ||
М-да... Плохо, когда у человека комплексы... Алгоритм простой. С помощью imagettfbbox определяем размер, занимаемый текстом. Далее просто находим разницу между шириной картинки, и шириной текста, делим ее пополам - это будет позиция вставки текста. Именно того текста, для которого мы находили занимаемый размер. |
Покажите пожалуйста пример на основе моего кода. Плизззз
Спустя 1 минута, 4 секунды (8.11.2009 - 19:17) Lusya256 написал(а):
Я правда немогу понять. Надеюсь это временно. Ведь спросить больше не у кого.
Спустя 12 минут, 32 секунды (8.11.2009 - 19:29) sergeiss написал(а):
Цитата (Lusya256 @ 8.11.2009 - 20:16) |
Покажите пожалуйста пример на основе моего кода. Плизззз |
Нет проблем
Но только код я писать не буду, а опишу алгоритм более подробно.
Возьми функцию imagettfbbox. Описание функции тебе уже дали (ссылка выше).
Параметры у этой функции те же, вобщем-то, что и у функции imagettftext, которую ты используешь. Даже более того - их меньше! Ну так подставь их!
На выходе будет массив из 8 чисел, показывающий координаты 4-х точек, который можно нарисовать именно вокруг твоего текста, с учетом размера шрифта и угла наклона.
Исходя из этих данных надо вычислить ширину текста.
А затем, как я уже говорил, надо взять ширину картинки, вычесть из нее ширину текста, разделить пополам, и получишь искомую позицию, в которой надо расположить текст. Т.е. один из параметров для функции imagettftext.
Спустя 3 минуты, 24 секунды (8.11.2009 - 19:33) Lusya256 написал(а):
так, понятно.Вроде. Но размер текста по горизонтали меняется в зависимости от вводимого в форму. как с этим быть? Как я понимаю нужно прописать мин и мах размер бокса? И чтоб он был всегда в центре. Т.е. 1 символ или 20 должны быть всегда в центре выводимого изображения.
Спустя 10 минут, 9 секунд (8.11.2009 - 19:43) sergeiss написал(а):
Не нужно прописывать никакие размеры.
Нужно только получить динамически размеры, исходя из текста. Что и позволяет сделать функция imagettfbbox.
Нужно только получить динамически размеры, исходя из текста. Что и позволяет сделать функция imagettfbbox.
Спустя 6 минут, 44 секунды (8.11.2009 - 19:49) Lusya256 написал(а):
написала вот так:
честно говоря на обум. Выходит только фоновая картинка. Что не так?
Зы.: Вы уж простите что я такая тупая.Я самоучка, спросить не у кого, а парень только и знает что по адалтам шляться.
$font = './cyrillic_old.ttf';
$bbox = imagettfbbox(10, 45, $font);
$x = $bbox[0] + (imagesx($im) / 2) - ($bbox[4] / 2) - 25;
$y = $bbox[1] + (imagesy($im) / 2) - ($bbox[5] / 2) - 5;
$im=imagecreatefromjpeg($shab);
$font_color = imagecolorallocate($im, 255, 0, 255);
imagettftext($im, 10, 45, $x, $y, $font,$name);
imageJpeg($im, "".$papka."/".$id.".jpg");
честно говоря на обум. Выходит только фоновая картинка. Что не так?
Зы.: Вы уж простите что я такая тупая.Я самоучка, спросить не у кого, а парень только и знает что по адалтам шляться.
Спустя 6 минут, 16 секунд (8.11.2009 - 19:56) Grazor написал(а):
а почему $im используется до того как описано?
Цитата (Lusya256 @ 8.11.2009 - 19:49) |
$x = $bbox[0] + (imagesx($im) / 2) - ($bbox[4] / 2) - 25; $y = $bbox[1] + (imagesy($im) / 2) - ($bbox[5] / 2) - 5; |
и координаты не совсем так считаются.
простой пример: ширина 5 ед, текст - 1ед. какая координата должна быть у текста?
__Х__
Спустя 2 минуты, 33 секунды (8.11.2009 - 19:58) Lusya256 написал(а):
упс. точно.
Спустя 1 минута, 45 секунд (8.11.2009 - 20:00) sergeiss написал(а):
Цитата (Lusya256 @ 8.11.2009 - 20:49) |
Что не так? |
Уже лучше Направление мысли совершенно верное.
Но только количество параметров у imagettfbbox ты указываешь неверное. Где сам текст, размер которого надо узнать???
И координаты надо немного не так считать (хотя и близко к правильному написано). Подумай немного, чтобы не "честно говоря наобум", а чтобы с пониманием.
Цитата (Lusya256 @ 8.11.2009 - 20:49) |
а парень только и знает что по адалтам шляться. |
Не моё дело... Но, может, парня сменить?
PS. Grazor - кто у кого "подсмотрел" фразу насчет координат???
Спустя 3 минуты, 11 секунд (8.11.2009 - 20:03) Grazor написал(а):
sergeiss
я сам начал редактировать (а дописал, видимо, осле твоего ответа) честно-честно
а вот недостающий параметр в imagettfbbox не заметил
я сам начал редактировать (а дописал, видимо, осле твоего ответа) честно-честно
а вот недостающий параметр в imagettfbbox не заметил
Спустя 2 дня, 21 час, 45 минут, 6 секунд (11.11.2009 - 17:48) Lusya256 написал(а):
Всё. Проблема решена. Огромнейшее спасибо Grazor.