За последние 24 часа нас посетил 22821 программист и 1271 робот. Сейчас ищут 748 программистов ...

Не формируется картинка (черное поле)

Тема в разделе "Обработка изображений средствами PHP", создана пользователем jurvrn.ru, 5 фев 2021.

  1. jurvrn.ru

    jurvrn.ru Новичок

    С нами с:
    14 июн 2019
    Сообщения:
    97
    Симпатии:
    2
    Вместо картинки черное поле, то есть шрифт на картинку не отображается.
    Не подскажите почему? Шрифт лежит в папке со скриптом
    PHP:
    1. <?php
    2.  
    3. // создаем случайное число и сохраняем в сессии
    4. $number = rand(1000, 9999);
    5. $_SESSION['back_capt'] = $number;
    6.  
    7. // создаем изображение
    8. $img = imagecreatetruecolor(75, 25);
    9.  
    10. // создаем три цвета: для числа, для шума и для фона
    11. $white = imagecolorallocate($img, 230, 230, 230);
    12. $grey = imagecolorallocate($img, 150, 150, 150);
    13. $black = imagecolorallocate($img, 50, 50, 50);
    14.  
    15. imagefilledrectangle($img, 0, 0, 105, 25, $black);
    16.  
    17. // рисуем созданное случайное число
    18. imagettftext($img, 20, 0, 10, 19, $grey, 'font.ttf', rand(1000, 9999));
    19. imagettftext($img, 20, 0, 0, 22, $white, 'font.ttf', $number);
    20.  
    21. // предотвращаем кеширование браузером
    22. header('Cache-Control: no-store, no-cache, must-revalidate');
    23. header('Expires: ' . date('r'));
    24.  
    25. // отправляем изображение браузеру
    26. header ('Content-type: image/gif');
    27. imagegif($img);
    28. ?>
     
  2. Drunkenmunky

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

    С нами с:
    12 авг 2020
    Сообщения:
    1.476
    Симпатии:
    281
    Попробуйте что-то изменить - цвет, размер, координаты.
    Поиграйте шрифтами так сказать.
     
  3. AlexProg

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

    С нами с:
    13 май 2014
    Сообщения:
    320
    Симпатии:
    7
    А что если добавить вверху:

    PHP:
    1. ini_set('error_reporting', E_ALL);
    2. ini_set('display_errors', 1);
    3. ini_set('display_startup_errors', 1);
    и изменить header('Content-type: image/gif');
    на
    PHP:
    1. header("Content-type: text/html; charset=utf-8");
     
  4. jurvrn.ru

    jurvrn.ru Новичок

    С нами с:
    14 июн 2019
    Сообщения:
    97
    Симпатии:
    2
    после этого убрало черный цвет на месте вывода изобржения
    изменений не было

    сайт jurvrn.ru
    https://nimb.ws/5ukUYG
     
    #4 jurvrn.ru, 6 фев 2021
    Последнее редактирование: 6 фев 2021
  5. AlexProg

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

    С нами с:
    13 май 2014
    Сообщения:
    320
    Симпатии:
    7
    jurvrn.ru нравится это.
  6. jurvrn.ru

    jurvrn.ru Новичок

    С нами с:
    14 июн 2019
    Сообщения:
    97
    Симпатии:
    2
    Добавил к названию файла путь - './arial.ttf' и цифры стали отображаться. Спасибо
     
  7. jurvrn.ru

    jurvrn.ru Новичок

    С нами с:
    14 июн 2019
    Сообщения:
    97
    Симпатии:
    2
    P.S. один спам прошел, странно. Неужели применена технология распознавания текста? Или перехватили куки? Хотя должны удаляться
     
  8. miketomlin

    miketomlin Старожил

    С нами с:
    9 авг 2016
    Сообщения:
    3.792
    Симпатии:
    650
    Или повторно используют кем-то (или чем-то) распознанную капчу ;)
     
  9. jurvrn.ru

    jurvrn.ru Новичок

    С нами с:
    14 июн 2019
    Сообщения:
    97
    Симпатии:
    2
    каптча должна обновляться и есть в коде же
    PHP:
    1. // предотвращаем кеширование браузером
    2. header('Cache-Control: no-store, no-cache, must-revalidate');
    3. header('Expires: ' . date('r'));
    просто для себя интересно
     
  10. miketomlin

    miketomlin Старожил

    С нами с:
    9 авг 2016
    Сообщения:
    3.792
    Симпатии:
    650
    Тем, кто хочет тебя проспамить, эти заголовки не интересны :)