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

Форум PHP

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

 

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

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

тема: не работает ImageTtfText
 
 автор: Port_Artur   (29.03.2010 в 23:55)   письмо автору
 
 

Изображение выводится но цифр на нём нет.
corona.ttf и capcha.jpg лежат в одной папке с capcha.php.
Не могу понять почему цифр на картинке нет!?

Библиотека GD включена:
gd
GD Support     enabled 
GD Version     2.0 or higher 
FreeType Support     enabled 
FreeType Linkage     with freetype 
FreeType Version     2.3.7 
GIF Read Support     enabled 
GIF Create Support     enabled 
JPG Support     enabled 
PNG Support     enabled 
WBMP Support     enabled


capcha.php
<?php
//Создаем изображение
$im=ImageCreateFromJpeg("capcha.jpg");
//Генерируем цвет надписи
$color=ImageColorAllocate($im,0,0,0);
//Формируем надпись, используя шрифт
ImageTtfText($im240330$color"corona.ttf",  "555555");
//Указываем тип содержимого
Header("Content-type: image/jpeg");
//Создаем и выводим изображение
ImageJpeg($im);
//Разрушаем изображение
ImageDestroy($im);
?>

  Ответить  
 
 автор: cheops   (30.03.2010 в 01:53)   письмо автору
 
   для: Port_Artur   (29.03.2010 в 23:55)
 

А изображение capcha.jpg какого размера в ширину и высоту?

  Ответить  
 
 автор: Port_Artur   (30.03.2010 в 08:28)   письмо автору
5 Кб
 
   для: cheops   (30.03.2010 в 01:53)
 

Ширина 200, высота 50.
Прикрепил к сообщению

corona.ttf - рабочий файл - открывается - показывает буквы и цифры разных размеров.

  Ответить  
 
 автор: Port_Artur   (30.03.2010 в 12:41)   письмо автору
 
   для: Port_Artur   (30.03.2010 в 08:28)
 

Почему же не работает?

  Ответить  
 
 автор: sim5   (30.03.2010 в 13:02)   письмо автору
 
   для: Port_Artur   (30.03.2010 в 12:41)
 

Все работает. У вас вывод ошибок не отключен случайно?

  Ответить  
 
 автор: Port_Artur   (30.03.2010 в 15:37)   письмо автору
 
   для: sim5   (30.03.2010 в 13:02)
 

Sim5

Прикреплённый выше файл capcha.jpg - результат работы скрипта capcha.php - цифр на нём нет, хотя само изображение отображается в браузере.

  Ответить  
 
 автор: sim5   (30.03.2010 в 16:12)   письмо автору
5.2 Кб
 
   для: Port_Artur   (30.03.2010 в 15:37)
 

Что касается результата работы, то это не каптча, а картинка, смысла в таком шуме нет никакого. А вот ваша картинка с наложением ваших 555...

  Ответить  
 
 автор: Port_Artur   (30.03.2010 в 16:42)   письмо автору
 
   для: sim5   (30.03.2010 в 16:12)
 

А вы можете выложить ваш рабочий вариант (результатом которого явилась представленная вами картинка) из 3-х файлов: .jpg, .php, .ttf.
Ну у меня откзывается отображать цифры и всё тут.

  Ответить  
 
 автор: sim5   (30.03.2010 в 17:21)   письмо автору
 
   для: Port_Artur   (30.03.2010 в 16:42)
 

Мой "рабочий" вариант ничем не отличается от вашего. Выкладывать нет необходимости. У вас вывод ошибок случайно не подавлен?

  Ответить  
 
 автор: Port_Artur   (30.03.2010 в 19:11)   письмо автору
 
   для: sim5   (30.03.2010 в 17:21)
 

А как проверить?

  Ответить  
 
 автор: sim5   (30.03.2010 в 19:22)   письмо автору
 
   для: Port_Artur   (30.03.2010 в 19:11)
 

<?php
error_reporting 
(E_ALL); //добавить
//Создаем изображение 
$im=ImageCreateFromJpeg("capcha.jpg");
.....

Проверяйте.
Вы где тестируете свой скрипт?
Не может шрифт сам по себе пропадать, у вас либо он не подключается (путь и пр.), либо иные проблемы, но ошибки должны же при этом быть.

  Ответить  
 
 автор: Port_Artur   (30.03.2010 в 19:31)   письмо автору
 
   для: sim5   (30.03.2010 в 19:22)
 

Ничего не изменилось - никаких ошибок нет. Таже самая картинка без цифр.
Тестирую на хостинге. Кидаю файлы по FTP через FAR.

  Ответить  
 
 автор: sim5   (30.03.2010 в 19:45)   письмо автору
 
   для: Port_Artur   (30.03.2010 в 19:31)
 

Ну прямо фантастика. А на локальном сервере тоже не работает?

  Ответить  
 
 автор: Port_Artur   (30.03.2010 в 19:59)   письмо автору
 
   для: sim5   (30.03.2010 в 19:45)
 

На локалке стоит стандартный Денвер - но тоже картинка без цифр.

  Ответить  
 
 автор: sim5   (30.03.2010 в 20:06)   письмо автору
 
   для: Port_Artur   (30.03.2010 в 19:59)
 

Такого быть не может, это вы косячите в чем-то.

  Ответить  
 
 автор: Port_Artur   (30.03.2010 в 20:12)   письмо автору
 
   для: sim5   (30.03.2010 в 20:06)
 

Ну в чём я могу косячить - файлы на хостинге и на локалке лежат в одной папке, написаны маленькими буквами. Ну нет ошибок и цифры не отображаются. Картинку я показал, .ttf прикреплял в одном из сообщений, код скрипта в первом сообщении приведён. Я уже в шоке.

  Ответить  
 
 автор: sim5   (30.03.2010 в 20:15)   письмо автору
78 Кб
 
   для: Port_Artur   (30.03.2010 в 20:12)
 

Здесь содержимое все ваше, изменены только имена файлов. Помещенное в корень все работает.

  Ответить  
 
 автор: Port_Artur   (30.03.2010 в 21:17)   письмо автору
 
   для: sim5   (30.03.2010 в 20:15)
 

Ваш комплект на локалке сразу заработал.
Заметил что наши скрипты различаются тем, что у вас 2 функции написаны полностью меленькими буквами.
Мой скрипт заработал на хостинге, когда я вот эти функции написал полностью с маленьких букв:

$im=imagecreatefromjpeg("capcha.jpg");

$color=imagecolorallocate($im,0,0,0);

Но на хостинге не работает ни мой скрипт ни ваш комплект из архива.
Даже если все функции пишу с маленьких букв.

В чём же косяк?

  Ответить  
 
 автор: Port_Artur   (30.03.2010 в 22:18)   письмо автору
 
   для: Port_Artur   (30.03.2010 в 21:17)
 

Служба поддержки хостинга помогла - оказывается нужно было указывать полный путь к файлу и не http, а путь относительно сервера (относительно самого хостинга).
Спасибо всем кто помогал. Вот только почему такой путь помог? Почему не работао просто с именем файла или с http?

  Ответить  
 
 автор: Trianon   (30.03.2010 в 23:54)   письмо автору
 
   для: Port_Artur   (30.03.2010 в 22:18)
 

>Служба поддержки хостинга помогла - оказывается нужно было указывать полный путь к файлу и не http, а путь относительно сервера (относительно самого хостинга).

Оказывается, значит?

Тогда сравнивайте эту Вашу фразу с тем, что я сказал "Тогда стоит в качестве имени шрифта написать полный серверный путь."

>Спасибо всем кто помогал.
Не за что. :-\


>Вот только почему такой путь помог?
>Почему не работао просто с именем файла

Потому что у библиотеки GDlib (или freetype) другие представления о текущем рабочем каталоге, нежели у Вас.


>или с http?

А почему оно должно работать с http?!
И поподробнее желательно.

  Ответить  
 
 автор: cheops   (30.03.2010 в 13:08)   письмо автору
 
   для: Port_Artur   (30.03.2010 в 12:41)
 

Если не сложно, прикрепите corona.ttf, что-то у себя его найти не могу.

  Ответить  
 
 автор: Trianon   (30.03.2010 в 13:36)   письмо автору
 
   для: Port_Artur   (30.03.2010 в 12:41)
 

не работает на сервере - в unix-среде?
Не исключено, что проблема в регистре символов имени ttf-файла.

  Ответить  
 
 автор: Port_Artur   (30.03.2010 в 15:22)   письмо автору
161 Кб
 
   для: Trianon   (30.03.2010 в 13:36)
 

Все файлы и расширения написаны маленькими буквами. Изображение выводится и ошибок нет. Только цифр на изображении нет.

  Ответить  
 
 автор: Trianon   (30.03.2010 в 18:32)   письмо автору
 
   для: Port_Artur   (30.03.2010 в 15:22)
 

И Bы убеждены, что на сервере этот файл тоже именуется маленькими буквами?

Тогда стоит в качестве имени шрифта написать полный серверный путь.

  Ответить  
 
 автор: Port_Artur   (30.03.2010 в 19:15)   письмо автору
 
   для: Trianon   (30.03.2010 в 18:32)
 

Прописал полный путь (http://www..../.../corona.ttf) - никаких изменений.

  Ответить  
 
 автор: Trianon   (30.03.2010 в 23:48)   письмо автору
 
   для: Port_Artur   (30.03.2010 в 19:15)
 

>Прописал полный путь (http://www..../.../corona.ttf) - никаких изменений.

За такой полный путь Вас стоит дисквалифицировать.

  Ответить  
 
 автор: cheops   (30.03.2010 в 19:00)   письмо автору
 
   для: Port_Artur   (30.03.2010 в 15:22)
 

На сервере имеется SSH? Если не сложно выполните команду (или прочитайте содержимое при помощи PHP)
ls -l corona.ttf

Windows и диспетчеры файлов запросто могут такую бяку подсунуть.

  Ответить  
 
 автор: Port_Artur   (30.03.2010 в 19:11)   письмо автору
 
   для: cheops   (30.03.2010 в 19:00)
 

Я не знаю как это проверить, есть ли SSH?

Я возможно неправильно сделал - но результат пустая страница в браузере

<?php

 ls 
-l corona.ttf

?>

  Ответить  
 
 автор: cheops   (31.03.2010 в 00:27)   письмо автору
 
   для: Port_Artur   (30.03.2010 в 19:11)
 

Нет, в случае PHP имеется в виду вот такой скрипт
<?php 
  $dir 
opendir(".");
  while((
$file readdir($dir)) !== false)
  {
    echo 
$file."<br>";
  }
  
closedir($dir);
?>

  Ответить  
 
 автор: cheops   (31.03.2010 в 00:30)   письмо автору
 
   для: Port_Artur   (30.03.2010 в 15:22)
 

И локально не отображается? У меня ваш скрипт с приложенным шрифтом сработал - вывелась череда цифр 5, а подложка какого цвета у вас, может цифры сливаются с фоном?

  Ответить  
 
 автор: Назар   (27.02.2016 в 19:42)
 
   для: cheops   (31.03.2010 в 00:30)
 

Сам сегодня столкнулся с той же проблемой, решил ее указанием полного пути к шрифту, в моем случае:rn $font='/pub/home/your_server_name/htdocs/your_img_folder/arial.ttf';

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

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