Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Уменьшение текста на картинке в зависимости от его размера.
 
 автор: man1   (21.10.2010 в 20:54)   письмо автору
 
 

Приветствую всех!

Как можно уменьшать текст на картинке в зависимости от его размера? Написал абстрактно. Сейчас поясню что я имею ввиду на живом примере.

Есть фотография в фотогаллерее, ее можно подписать (текст наносится на саму фотографию), но здесь сразу же появляется 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 - Как должно быть.

  Ответить  
 
 автор: sim5   (21.10.2010 в 22:12)   письмо автору
 
   для: man1   (21.10.2010 в 20:54)
 

Сделать вообще-то можно, но зачем на изображение? Изображения разные по цвету, подобрать к ним одинаково хорошо читайющийся цвет текста невозможно "вслепую". Можно конечно и полупрозрачную подложку темную под текст подложить, но все таки, не лучше ли подписи выводить отдельно, внизу изображения, решая такие вопросы с помощью CSS?

  Ответить  
 
 автор: nikita2206   (21.10.2010 в 23:23)   письмо автору
 
   для: man1   (21.10.2010 в 20:54)
 

Да, лучше делай это на стороне клиента...
А если хочешь мороки, то вот примерный алгоритм:

Посчитать длину строки: пройтись циклом по строке(по каждому символу), и в каждой итерации этого цикла прибавлять к переменной длину данного символа(а как ты узнаешь длину каждого символо - уже вопрос).
Разделить длину строки на ширину изображения (за вычетом отступов возможно), взять ceil() от этого числа.
Вот ты и получил количество строк, теперь ты на основе этих данных можешь знать в какую координату (по высоте) лепить первую строку.
Опять идешь циклом по строке, собирая первую подстроку. В каждой итерации цикла нужно проверять - (не выйдет ли строка за пределы, если добавить еще один символ ИЛИ не последний ли это символ в перебираемой строке). Если выйдет, значет можно ее рисовать. Нарисовали, сбрасываем переменную с подстрокой и с длиной подстроки.

  Ответить  
 
 автор: man1   (23.10.2010 в 04:55)   письмо автору
 
   для: nikita2206   (21.10.2010 в 23:23)
 

Спасибо, ознакомился. Буду разбираться уже утром, сейчас уже не соображается ночью совсем )

Накидаю примерный скрипт, если будут вопросы - отпишусь здесь снова.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования