Проблема с imagecreatetruecolor

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
@Ulibka, Call to undefined function imagecreatetruecolor() дальше в гугол

PS: надо убедиться в том, что ты верную строчку нашел и раскомментил и в НУЖНОМ файле. Нету у тебя библиотеки GD
 
Последнее редактирование:

Ulibka

Новичок
Нашел еще параметр , установил
extension_dir = "C:\xampp\php\ext"

Если extension_dir не выставить, то возникает ошибка
PHP Startup: Unable to load dynamic library 'C:\php\ext\php_gd2.dll'

стоит строка
extension=php_gd2.dll

Ошибки пропали, но картинка все равно не появляется.
Может быть проблема в Xampp ?

P.S. apache я конечно перезагружал
 

Ulibka

Новичок
тебя не смущает:
Смущает :)
Xampp поставил на SSD (диск F)
PHP стоит на F:\xampp\php
В директории F:\xampp\php\ лежит php.ini

Пробовал ставить
extension_dir = F:/xampp/php/ext

Программа не работает (картинки не видно)
Снес xampp, поставил на C: Apache (httpd-2.4.29-Win64-VC15 from Apache lounge)
Поставил на C: в директорию PHP сам php 7 (php-7.2.1-Win32-VC15-x64 thread safe.zip)
Выставил
extension_dir = c:/php/ext
та же фигня - не работает
 

Ulibka

Новичок
Может быть я все таки в пяти строках программы ошибся ?
Но ведь это я тупо записал пример (наверно даже из документации)

PHP:
<?php
    
Header("Content-type: image/JPEG");
$im = imagecreatetruecolor(600, 150);
$text_color = imagecolorallocate($im, 233, 14, 91);
imagestring($im, 1, 5, 5,  'A Simple Text String', $text_color);
imagejpeg($im);
imagedestroy($im);

?>
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
Ошибся ты в том, что бездумно сносишь и ставишь дистрибутивы, думая о том, что на винде то оно точняк само заработает, но, увы...

Смотри какой у тебя php.ini светится в phpinfo, дальше пробуй или поменять к нему путь или поменять настроки в нем, чтобы грузились библиотеки.
 

Ulibka

Новичок
Спасибо!

Меня смущает первая строчка в phpinfo:
Configuration File (php.ini) Path C:\Windows
Loaded Configuration File F:\xamp_PHPed\php\php.ini

С другой стороны написано что конфигурационный файл загрузился с правильного адреса.
 

Ulibka

Новичок
Поменял в программе предпоследнюю строку на imagejpeg($im,"simpletext.jpg");
Файл jpg благополучно записался.
Значит расширение все же загрузилось :)
И я таки увидел свой прямоугольник с текстом!

Но почему он у меня в браузере не отображается ?
Я даже и страничку отдельно сделал и написал:
<img src="http://localhost/t1/get_img1.php">
Но картинки нет ....
 

Ulibka

Новичок
Тем кто будет читать эту тему через 10 лет :)

Чтобы расширение подгрузилось надо в php.ini задать extension_dir (на конце слеш не надо ставить, сами слеши писать в стиле Unix), пример:
extension_dir = "F:/xamp_PHPed/php/ext"

и включить строку загрузки dll библиотеки работы с изображениями:
extension=php_gd2.dll
 
Последнее редактирование:

AnrDaemon

Продвинутый новичок
Не важно, какие слеши. Windows пофиг.
А вот файл INI лучше бы сменить на
Код:
php-<sapi name>.ini
Точное название SAPI можно посмотреть файликом
PHP:
<?=PHP_SAPI;
 

Ulibka

Новичок
У меня на самом деле остался только последний вопрос - почему в браузере Google chrome не рисуется прямоугольник этой программой:
(при том что если предпоследнюю строку поменять на imagejpeg($im,"simpletext.jpg"); - то файл jpeg замечательно пишется)

PHP:
<?php
    
Header("Content-type: image/JPEG");
$im = imagecreatetruecolor(600, 150);
$text_color = imagecolorallocate($im, 233, 14, 91);
imagestring($im, 1, 5, 5,  'A Simple Text String', $text_color);
imagejpeg($im);
imagedestroy($im);

?>
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
@Ulibka, отладка, вывод ошибок в шапке скрипта, телепатов у нас нет.
 

AnrDaemon

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

WMix

герр M:)ller
Партнер клуба
@AnrDaemon, я кстати только в браузере графику и отлаживаю, у тебя какая альтернатива?
 

WMix

герр M:)ller
Партнер клуба
И дальше в матрицу смотришь и интерпетируешь? Крут
 

AnrDaemon

Продвинутый новичок
Зачем? Есть нормальные просмотровщики. Даже если приходится глазами смотреть, ошибки, вываливаемые PHP перед дампом обычно сразу видно.
 
Сверху