За последние 24 часа нас посетили 18974 программиста и 1608 роботов. Сейчас ищут 808 программистов ...

Текст на картинке кривой

Тема в разделе "Обработка изображений средствами PHP", создана пользователем Lyona, 8 фев 2007.

  1. Anonymous

    Anonymous Guest

    для таких вещей есть оператор switch - это раз. По вашему коду будет 21 лет, 22 лет, и т.д.
    зы. Лучше хранить все в днях, имхо.
     
  2. Вльдемар

    Вльдемар Активный пользователь

    С нами с:
    20 май 2006
    Сообщения:
    635
    Симпатии:
    0
    Адрес:
    Белхород
  3. Anonymous

    Anonymous Guest

    Вльдемар, за дырки в чужих скриптах потом сам будешь отвечать?
     
  4. Вльдемар

    Вльдемар Активный пользователь

    С нами с:
    20 май 2006
    Сообщения:
    635
    Симпатии:
    0
    Адрес:
    Белхород
    А там разве дырки есть(вот сс...и, протерли уже :))
    Я проверял, вроде все правельно работает
     
  5. Anonymous

    Anonymous Guest

    Вльдемар, комменты почитал?
     
  6. Вльдемар

    Вльдемар Активный пользователь

    С нами с:
    20 май 2006
    Сообщения:
    635
    Симпатии:
    0
    Адрес:
    Белхород
    Читал
    Если рассудить логически:
    кол-во полных месяцев правильно - 5 (октябрь,ноябрь, декабрь, анварь, февраль)
    В сентябре 30 дней, получается 30 - 14 = 16
    В марте нас не волнует сколько дней и также не волнует сколько в феврале
    Или я не прав?
    Далее, 16+3 получается 19

    Если не правильно рассудил - исправляйте.
     
  7. Lyona

    Lyona Активный пользователь

    С нами с:
    31 янв 2007
    Сообщения:
    58
    Симпатии:
    0
    У меня работает, только я ж не всё писала, я пропустила подключение к базе например.
    В чем ошибка появляется у вас?
    "старушенции" с такими великовозрастными детьми на моём форуме не обитают :) :? , это будут линеечки для показа возраста деток (ну и потом ещё добавятся беременные и свадебные). Со switch согласна.

    по поводу несходимости дней - я примерно по этому и не хотела добавлять в лнеечку кол-во дней. Потому как ошибки могут быть и в вычислениях скриптом и с часовым поясом не знаю как разбираться. Да и вообще при возрасте в 8 лет кол-во дней как-то особой роли и не играет. Я планировала скрипт писать с учётом, что если года и месяцы равны 0, то выводить в неделях и днях - это для деток до 1 месяца.

    Если у кого-то есть ещё варианты скриптов, то интересно посмотреть, а то для недельного ребёнка ошибка в 2 дня играет большую роль.
     
  8. Lyona

    Lyona Активный пользователь

    С нами с:
    31 янв 2007
    Сообщения:
    58
    Симпатии:
    0
    кол-во полных месяцев правильно - 5 (ноябрь, декабрь, анварь, февраль) - что-то не поняла... пишешь 5, а в примере приводишь 4
     
  9. Lyona

    Lyona Активный пользователь

    С нами с:
    31 янв 2007
    Сообщения:
    58
    Симпатии:
    0
    Кто-то знает, вокруг пиксельно шрифта черного цвета можно сдеть обводку белым? Я так подумала, есть же не мало форумов с тёмным фоном, как тогда быть?
     
  10. 440Hz

    440Hz Старожил
    Команда форума Модератор

    С нами с:
    21 дек 2012
    Сообщения:
    8.003
    Симпатии:
    1
    Адрес:
    Оттуда
    Lyona

    я писал текст белым, а потом -1,-1 черным. получался текст с тенью.
    цвета подбирать по вкусу.
     
  11. pel

    pel Активный пользователь

    С нами с:
    19 янв 2007
    Сообщения:
    569
    Симпатии:
    0
    Адрес:
    Симферополь
    Ключи массива без кавычек написаны, "год/года/лет" неправильно работает (про деток не знал:))... Фигня, в общем, notice'ы )
    А еще насчет 1970го года парились ;)

    Но вообще, ИМХО, лучше сразу писать что-то универсальное. Чтоб и с 70м годом, и с днями... А то добавятся потом свадебные линеечки... А в этом аду на счету каждый день :twisted: :roll: :wink:
    Код, который Dagdamor написал, проверяли? Подошел?
     
  12. Anonymous

    Anonymous Guest

    :cry::cry::cry:
     
  13. Lyona

    Lyona Активный пользователь

    С нами с:
    31 янв 2007
    Сообщения:
    58
    Симпатии:
    0
    Поэтому и спрашивала, что сразу и на будущее думаю как делать. Впринципе. свадебные тоже не будут измеряться годами до 1970... наверное не больше года будет и тут наверное дни важны. Я вот теперь уже и задумываться начинаю, а так нужно ли мне вообще меньше 70 года? Разве что ради универсальности.
    Код буду сейчас проверять, потом напишу что получилось
     
  14. Lyona

    Lyona Активный пользователь

    С нами с:
    31 янв 2007
    Сообщения:
    58
    Симпатии:
    0
    Странно скрипт работает... или я что-то недопонимаю....
    Задаю 2 даты:
    28.09.2005 и 28.10.2005
    В первом случае получаю результат:
    1 год 4 месяца 14 дней
    во-втором:
    3 года 3 месяца 15 дней
    Что за разница в 1 день? Я так думаю, что это из-за разницы в днях месяца 30-31, но на выходе вроде не должно так быть.
    (причём уж не знаю откуда это взялось, может у меня что-то с глазами было, но когда я запустила первый раз, то у меня результат выдал для первого случая 1 год 5 месяцев 15 дней.... Я в скрипте нечего не меняла, поставила вторую дату, потом вернулась к первой и она уже показала такой результат.)
     
  15. Lyona

    Lyona Активный пользователь

    С нами с:
    31 янв 2007
    Сообщения:
    58
    Симпатии:
    0
    Предыдущий вопрос про дату не отменяется, но есть ещё. Дошла я до наложения бегунка...
    Вобщем, если я правильно поняла и делаю, то у меня пока так:
    Бегунок по высоте может быть выше фона, а по длине уж точно короче. Поэтому я создаю третюю картинку
    $image = imagecreatetruecolor($size_new_h, $size_new_w); с размерами по высоте равными бегунку (если он выше фона), а по длине равными фону. Почему у меня она имеет чёрный цвет заливки?

    И второй вопрос, как считать смещение бегунка? Лучше по его краю или серединке? Если второй вариант, то вначале года бегунок будет наполовину скрыт, но по-моему так он лучше показывает на какой цифре он сейчас.
    И, как я поняла, мне надо длину фона поделить на кол-во дней году, а смещать на кол-во дней пройденных до текущего момента умноженных на результат деления?
     
  16. Anonymous

    Anonymous Guest

    А каким вы его заливаете?
    а не проще в процентах исчислять?
    лучше взять за длину шкалы = (длина фона - ширина бегунка) - т.е. с запасом на пол-ширины бегунка от каждого из краев линейки, и добавить туда прозрачный фон.
     
  17. Lyona

    Lyona Активный пользователь

    С нами с:
    31 янв 2007
    Сообщения:
    58
    Симпатии:
    0
    Да вроде никаким $image = imagecreatetruecolor($size_new_h, $size_new_w);

    Не поняла, это как в процентах считать?
     
  18. pel

    pel Активный пользователь

    С нами с:
    19 янв 2007
    Сообщения:
    569
    Симпатии:
    0
    Адрес:
    Симферополь
    imagecreatetruecolor() returns an image identifier representing a black image of size x_size by y_size.

    попробуйте добавить
    PHP:
    1. $alpha = imagecolorallocate($im, 0, 0, 0);
     
  19. Lyona

    Lyona Активный пользователь

    С нами с:
    31 янв 2007
    Сообщения:
    58
    Симпатии:
    0
    Код (Text):
    1. $image = imagecreatetruecolor($size_new_h, $size_new_w);
    2. $alpha = imagecolorallocate($image, 0, 0, 0);
    3. imagecolortransparent($image,$alpha);
    если надо было добавлять так, то не помогло
     
  20. Lyona

    Lyona Активный пользователь

    С нами с:
    31 янв 2007
    Сообщения:
    58
    Симпатии:
    0
    заменила функцию создания на imagecreate - вроде всё работает. Есть разница какой функцией создавать изображение?
     
  21. 440Hz

    440Hz Старожил
    Команда форума Модератор

    С нами с:
    21 дек 2012
    Сообщения:
    8.003
    Симпатии:
    1
    Адрес:
    Оттуда
    Lyona

    есть.

    лучше создавать как truecolor
     
  22. Lyona

    Lyona Активный пользователь

    С нами с:
    31 янв 2007
    Сообщения:
    58
    Симпатии:
    0
    как с прозрачностью быть?
     
  23. Lyona

    Lyona Активный пользователь

    С нами с:
    31 янв 2007
    Сообщения:
    58
    Симпатии:
    0
    ау... отзовитесь...
    повторяю интересующие вопросы:
    Странно скрипт работает... или я что-то недопонимаю....
    Задаю 2 даты:
    28.09.2005 и 28.10.2005
    В первом случае получаю результат:
    1 год 4 месяца 14 дней
    во-втором:
    3 года 3 месяца 15 дней
    Что за разница в 1 день? Я так думаю, что это из-за разницы в днях месяца 30-31, но на выходе вроде не должно так быть.
    http://www.creater.ru/index.php?tid=83&script_id=1574
    на основе этого скрипта.
    Как посчитать кол-во полных недель?

    Второй вопрос: как сделать прозрачность в созданой картинке imagecreatetruecolor?
     
  24. Anonymous

    Anonymous Guest

    Lyona, я уже говорил с вопросами по скрипту обращайтесь к тому, сто его предложил. ;) По поводу прозрачности — если создаете gif то вам нужно как раз imagecreate.
     
  25. Вльдемар

    Вльдемар Активный пользователь

    С нами с:
    20 май 2006
    Сообщения:
    635
    Симпатии:
    0
    Адрес:
    Белхород
    Скрипт который не у кого правильно не работает кроме меня почемуто :)

    PHP:
    1. <?
    2. $base_day       = 28;       // no leading "0"
    3. $base_mon       = 9;        // no leading "0"
    4. $base_yr        = 2005;     // use 4 digit years!
    5.  
    6. $current_day        = 28;
    7. $current_mon        = 10;
    8. $current_yr     = 2005;
    9.  
    10. $base_mon_max       = date ("t",mktime (0,0,0,$base_mon,$base_day,$base_yr));
    11.  
    12. $base_day_diff      = $base_mon_max - $base_day;
    13.  
    14. $base_mon_diff      = 12 - $base_mon - 1;
    15.  
    16. $start_day      = 1;
    17. $start_mon      = 1;
    18. $start_yr       = $base_yr + 1;
    19.  
    20. $day_diff   = ($current_day - $start_day) + 1;  // add today
    21. $mon_diff   = ($current_mon - $start_mon) + 1;  // add current month
    22. $yr_diff    = ($current_yr - $start_yr);
    23.  
    24. $day_diff   = $day_diff + $base_day_diff;
    25. $mon_diff   = $mon_diff + $base_mon_diff;
    26.  
    27. if ($day_diff >= $base_mon_max)
    28. {
    29.     $day_diff = $day_diff - $base_mon_max;
    30.     $mon_diff = $mon_diff + 1;
    31. }
    32.  
    33. if ($mon_diff >= 12)
    34. {
    35.     $mon_diff = $mon_diff - 12;
    36.     $yr_diff = $yr_diff + 1;
    37. }
    38.  
    39. print "The difference between <b>".$base_yr."-".$base_mon."-".$base_day."</b> ";
    40. print "and <b>".$current_yr."-".$current_mon."-".$current_day."</b> is:";
    41. print "<br><br>";
    42.  
    43. $years = "years";
    44. $days = "days";
    45. if ($yr_diff == "1") $years = "year";
    46. if ($day_diff == "1") $days = "day";
    47.  
    48. print $yr_diff." ".$years.", ";
    49. print $mon_diff." month and ";
    50. print $day_diff." ".$days;
    51. ?>
    Прошу обратить на комментарии в первых 2-й строчках
    я задал такие даты 28.9.2005 и 28.10.2005 и получилось