|
|
|
| вот блок команд :
$pic = ImageCreateFromgif($img);
Header("Content-type: image/gif");
$color=ImageColorAllocate($pic, 250, 0, 0);
$h = ImageSY($pic) - 5;
$w = ImageSX($pic) - 85;
ImageTTFtext($pic, 12, 0, $w, $h, $color, 'Times', 'My Web-site');
Imagegif($pic);
ImageDestroy($pic);
на локалхосте (где установлена php5) все это работает
на агаве (там установлена php4) же несрабатывает команда:
ImageTTFtext($pic, 12, 0, $w, $h, $color, 'Times', 'My Web-site');
(это - наложение текста на картинку)
получается что эта команда появилась только в php5 (отсутствовала в php4) ?
или дело не в этом? | |
|
|
|
|
|
|
|
для: gen
(09.12.2006 в 13:45)
| | Может на агаве стоит более старая версия GD? | |
|
|
|
|
|
|
|
для: DEM
(09.12.2006 в 14:38)
| | была такая мысль вот и думаю как это обойти
но без вашей помощи с этим мне не сладить
я только обнаружил что этой функции у них точно нет
может быть есть другая аналогичная функция какая может быть кто-нибудь знает | |
|
|
|
|
|
|
|
для: gen
(09.12.2006 в 13:45)
| | >на агаве (там установлена php4) же несрабатывает команда:
Что значит "не срабатывает"? | |
|
|
|
|
|
|
|
для: Trianon
(09.12.2006 в 17:07)
| | а так, что если она не закомментирована (то есть включена ) то вообще вместо рисунка выдается [х]. А если ее исключить из блока команд то рисунок хотя бы не портится но естественно ожидаемого наложения текста не происходит
или вот беру такой код:
<?php
// Set the content-type
header ( "Content-type: image/png" );
// Create the image
$im = imagecreatetruecolor ( 400 , 30 );
// Create some colors
$white = imagecolorallocate ( $im , 255 , 255 , 255 );
$grey = imagecolorallocate ( $im , 128 , 128 , 128 );
$black = imagecolorallocate ( $im , 0 , 0 , 0 );
// The text to draw
$text = 'Testing...' ;
// Replace path by your own font path
$font = 'arial.ttf' ;
// Add some shadow to the text
ImageTTFtext ( $im , 20 , 0 , 11 , 21 , $grey , $font , $text );
// Add the text
imagettftext ( $im , 20 , 0 , 10 , 20 , $black , $font , $text );
// Using imagepng() results in clearer text compared with imagejpeg()
imagepng ( $im );
imagedestroy ( $im );
?>
так выдается сообщение
<br />
<b>Warning</b>: imagettftext(): Could not find/open font in <b>/home/g/golnat.h17.ru/WWW/graf/img4.php</b> on line <b>19</b><br />
<br />
<b>Warning</b>: imagettftext(): Could not find/open font in <b>/home/g/golnat.h17.ru/WWW/graf/img4.php</b> on line <b>22</b><br />
‰PNG
IHDRђЌЯ‡:IDATxњнБ
В чOm7 ЂЊѕ{‚©IEND®B`‚ | |
|
|
|
|
|
|
|
для: gen
(09.12.2006 в 17:41)
| | Другими словами, функция присутствует и работает.
Просто Вы не обеспечили ей файл с фонтом. Так обеспечьте. В текущем каталоге. | |
|
|
|
|
|
|
|
для: Trianon
(09.12.2006 в 18:08)
| | Для меня "обеспечте" это проблема. Я буду пытаться ее преодолеть.
Но вот вопрос, почему на локалхосте эта проблема не возникает ,там наложение текста идет нормально? | |
|
|
|
|
|
|
|
для: gen
(09.12.2006 в 18:22)
| | надо взять файл arial.ttf и скопировать его _под_этим_именем_ в каталог со скриптом.
Это называется "обеспечить"
Потому что на локалхосте - windows. У него своих фонтов полно. | |
|
|
|
|
|
|
|
для: Trianon
(09.12.2006 в 18:27)
| | вобще-то получилось , но только для примитивных картинок
когда же я взял реальную картинку - фото, то она не стала выводится даже без попытки наложения текста:
код
$pic = ImageCreateFromjpeg($img);
Header("Content-type: image/jpeg");
$color=ImageColorAllocate($pic, 250, 0, 0);
$h = ImageSY($pic)-100 ;
$w = ImageSX($pic)-2800 ;
ImageTTFtext($pic, 120, 0, $w, $h, $color, 'arial.ttf', 'Lena Nik! S Novim 2007 Godom!');
Imagejpeg($pic);
ImageDestroy($pic);
если в этом коде закомментировать команду с TTF,
то все равно выводитcя [х]
к этому коду PHP я обращаюсь из такой строчки:
<td><img src="img.php?imya=DSC_0836&ext=jpg" width=800 height=400></td>
а если взять просто
<td><img src="DSC_0836.jpg" width=800 height=400></td>
то выведится исходное фото | |
|
|
|
|
|
|
|
для: gen
(09.12.2006 в 18:32)
| | вобще-то получилось , но только для примитивных картинок
когда же я взял реальную картинку - фото, то она не стала выводится даже без попытки наложения текста:
код
$pic = ImageCreateFromjpeg($img);
Header("Content-type: image/jpeg");
$color=ImageColorAllocate($pic, 250, 0, 0);
$h = ImageSY($pic)-100 ;
$w = ImageSX($pic)-2800 ;
ImageTTFtext($pic, 120, 0, $w, $h, $color, 'arial.ttf', 'Lena Nik! S Novim 2007 Godom!');
Imagejpeg($pic);
ImageDestroy($pic);
если в этом коде закомментировать команду с TTF,
то все равно выводитcя [х]
к этому коду PHP я обращаюсь из такой строчки:
<td><img src="img.php?imya=DSC_0836&ext=jpg" width=800 height=400></td>
а если взять просто
<td><img src="DSC_0836.jpg" width=800 height=400></td>
то выведится исходное фото | |
|
|
|
|
|
|
|
для: gen
(09.12.2006 в 18:32)
| | Наверное, стоит отключить
>Header("Content-type: image/jpeg");
и
>Imagejpeg($pic);
до тех пор, пока не отладите скрипт.
Просто, чтобы видеть ошибки.
В любом случае, проблему с TTF Вы решили. | |
|
|
|
|
|
|
|
для: Trianon
(10.12.2006 в 09:02)
| | Однако нет. Как только я отключаю указанные Вами команды в любом сочетании, то выводится [х] даже для мультяшной картинки, а ошибки не выдаются | |
|
|
|
|
|
|
|
для: gen
(10.12.2006 в 11:51)
| | Если пытаться смотреть сообщения об ошибках скволь призму <img src="img.php?imya=DSC_0836&ext=jpg"> - тогда конечно.
Ссылку на скрипт в строке браузера набрать не пробовали? | |
|
|
|
|
|
|
|
для: Trianon
(10.12.2006 в 11:58)
| | сделал ссылки:
<td><a href='img.php?imya=ischo&ext=jpg'>картинка1</a></td>
<td><a href='img.php?imya=DSC_0836&ext=jpg'>картинка2</a></td>
C мультяшной картинкой все нормально, а картинка2 выдает d> и далее подключается агава с сообщением err500 и все, в чем дело неясно | |
|
|
|
|
|
|
|
для: gen
(10.12.2006 в 13:41)
| | Может быть фотография просто слишком большая, и скрипту не хватает памяти?
imagecreatefromjpeg в этом случае возвращает пустую строку. | |
|
|
|
|
|
|
|
для: Trianon
(10.12.2006 в 14:04)
| | - | |
|
|
|
|
|
|
|
для: Trianon
(10.12.2006 в 14:04)
| | -я все что можно убрал в сайте это больше чем объем фото (я задействовал фото поменьше- 699 316 это всего в 2 раза больше чем arial.ttf (я убрал например times.ttf, которая больше arial.ttf) и т.д. все равно $pic пусто и выдается d>
в чем же дело? | |
|
|
|
|
|
|
|
для: gen
(10.12.2006 в 15:00)
| | При чем тут сайт?
Изображение может в оперативную память не помещаться.
Какой у него размер? | |
|
|
|
|
|
|
|
для: Trianon
(10.12.2006 в 15:25)
| | как я понимаю 700кб | |
|
|
|
|
|
|
|
для: gen
(10.12.2006 в 15:31)
| | Размер изображения - это его ширина и высота. Какие они? | |
|
|
|
|
|
|
|
для: Trianon
(10.12.2006 в 15:32)
| | конечно огромные цифры например 3000 х 2000
или 2300 х 1700 и какие пути обхода? | |
|
|
|
|
|
|
|
для: gen
(10.12.2006 в 15:39)
| | В байтах 3000 x 2000 x 4 = 24 Mb
А памяти у Вас:
echo 'Memory limit:'.get_cfg_var('memory_limit').'<br>';
echo 'Used:'.memory_get_usage();
|
И даже меньше, т.к. на построение результата тоже что-то идет.
Пути обхода зависят от целей скрипта. | |
|
|
|
|
|
|
|
для: Trianon
(10.12.2006 в 15:49)
| | на локале такие сообщения
Memory limit:8M
Fatal error: Call to undefined function memory_get_usage() in C:\www\html\graf\img2.php on line 4
на агаве
Memory limit:
Used:14976
что касается цели скрипта то это овладение инструментария построение сайта | |
|
|
|
|
|
|
|
для: gen
(10.12.2006 в 16:08)
| | Значит, по умолчанию, 8Мb . А Вы туда втрое больше хотите запихнуть.
Цель можно достичь и на меньшего размера фотографиях. | |
|
|
|
|
|
|
|
для: Trianon
(10.12.2006 в 16:20)
| | ясно спасибо | |
|
|
|