|
|
|
| Приветствую всех!
Как можно уменьшать текст на картинке в зависимости от его размера? Написал абстрактно. Сейчас поясню что я имею ввиду на живом примере.
Есть фотография в фотогаллерее, ее можно подписать (текст наносится на саму фотографию), но здесь сразу же появляется 2 проблемы: уменьшение текста в зависимости от размера введенного текста (#1) и перенос текста на новые строки (#2).
1) Если текст длинный, то он уходит за границы фотографии и вместо "Охотничий сезон 2010. Охота на кабана в лесу" получается "ий сезон 2010. Охота на кабан".
Вопрос #1: Как посчитать длину введенного текста и уменьшать его в зависимости от его длины?
2) Вопрос #2: Как осуществить перенос длинного текста на другие строки?
http://i5.fastpic.ru/big/2010/1021/21/9bfb9cfbb55614399eddc671ff840121.jpg - Как есть.
http://i5.fastpic.ru/big/2010/1021/a6/ae460ed267d66edb649f13772c08a5a6.jpg - Как должно быть. | |
|
|
|
|
|
|
|
для: man1
(21.10.2010 в 20:54)
| | Сделать вообще-то можно, но зачем на изображение? Изображения разные по цвету, подобрать к ним одинаково хорошо читайющийся цвет текста невозможно "вслепую". Можно конечно и полупрозрачную подложку темную под текст подложить, но все таки, не лучше ли подписи выводить отдельно, внизу изображения, решая такие вопросы с помощью CSS? | |
|
|
|
|
|
|
|
для: man1
(21.10.2010 в 20:54)
| | Да, лучше делай это на стороне клиента...
А если хочешь мороки, то вот примерный алгоритм:
Посчитать длину строки: пройтись циклом по строке(по каждому символу), и в каждой итерации этого цикла прибавлять к переменной длину данного символа(а как ты узнаешь длину каждого символо - уже вопрос).
Разделить длину строки на ширину изображения (за вычетом отступов возможно), взять ceil() от этого числа.
Вот ты и получил количество строк, теперь ты на основе этих данных можешь знать в какую координату (по высоте) лепить первую строку.
Опять идешь циклом по строке, собирая первую подстроку. В каждой итерации цикла нужно проверять - (не выйдет ли строка за пределы, если добавить еще один символ ИЛИ не последний ли это символ в перебираемой строке). Если выйдет, значет можно ее рисовать. Нарисовали, сбрасываем переменную с подстрокой и с длиной подстроки. | |
|
|
|
|
|
|
|
для: nikita2206
(21.10.2010 в 23:23)
| | Спасибо, ознакомился. Буду разбираться уже утром, сейчас уже не соображается ночью совсем )
Накидаю примерный скрипт, если будут вопросы - отпишусь здесь снова. | |
|
|
|