|
|
|
| Хочу сделать, чтобы скрипт выводил на страницу изображения всех шрифтов, имеющихся на сайте.
Написал следующие
<?php
function win2uni($s)
{
$s = convert_cyr_string($s,'w','i');
for ($result='', $i=0; $i<strlen($s); $i++)
{
$charcode = ord($s[$i]);
$result .= ($charcode>175)?"&#".(1040+($charcode-176)).";":$s[$i];
}
return $result;
}
$path_font = "fonts";
$hdl=opendir($path_font);
while($file=readdir($hdl))
{
if(($file!=".")&&($file!=".."))
$font_array[] = $file;
}
closedir($hdl);
natcasesort($font_array);
$text = "Пример";
foreach ($font_array as $font)
{
header ("Content-type: image/png");
$size_img = imagettfbbox (20, 0, "$path_font/$font", win2uni($text));
$img = imagecreate ($size_img[2] + 10, $size_img[1] + $size_img[7] * -1);
$color = imagecolorallocate ($img, 115, 142, 90);
$text_color = imagecolorallocate ($img, 0, 0, 0);
imagettftext ($img, 20, 0, 5, $size_img[7] * -1, $text_color, "$path_font/$font", win2uni($text));
imagepng ($img);
}
?>
|
Но выводиться картинка только с первым шрифтом. | |
|
|
|
|
|
|
|
для: Drago
(19.11.2005 в 23:29)
| | А нет, так не получится - необходимо действовать так, как это описано в теме по ссылке http://www.softtime.ru/forum/read.php?id_forum=3&id_theme=5173 - через тэг <img> | |
|
|
|
|
|
|
|
для: cheops
(20.11.2005 в 03:11)
| | Все понятно. Спасибо. | |
|
|
|
|
|
|
|
для: Drago
(20.11.2005 в 04:07)
| | Сделал вот так
<?php
function win2uni($s)
{
$s = convert_cyr_string($s,'w','i');
for ($result='', $i=0; $i<strlen($s); $i++)
{
$charcode = ord($s[$i]);
$result .= ($charcode>175)?"&#".(1040+($charcode-176)).";":$s[$i];
}
return $result;
}
if (empty ($_GET['show']))
{
for ($i = 1; $i < count ($text) + 1; $i++)
{
//сюда данные передаются методом POST
$fon_col = "$fon_color_r,$fon_color_g,$fon_color_b";
$font_col = "$font_color_r,$font_color_g,$font_color_b";
$txt = "";
foreach ($text as $val)
{
$txt .= $val.",";
}
$txt = urlencode (substr ($txt, 0, -1));
echo "<img scr=\"preview.php?show=$i&font=$font&font_size=$font_size&fon_col=$fon_col&font_col=$font_col&txt=$txt\"><br>";
echo "<a href=\"preview.php?show=$i&font=$font&font_size=$font_size&fon_col=$fon_col&font_col=$font_col&txt=$txt\">url</a><br>";
}
}
else
{
$num = $_GET['show'];
$fon_color = explode (",", $_GET['fon_col']);
$font_color = explode (",", $_GET['font_col']);
$text = explode (",", urldecode ($_GET['txt']));
$font = $_GET['font'];
header ("Content-type: image/png");
$path_font = "fonts";
$size_img = imagettfbbox ($font_size, 0, "$path_font/$font", win2uni($text[$num - 1]));
$img = imagecreate ($size_img[2] + 10, $size_img[1] + $size_img[7] * -1);
$color = imagecolorallocate ($img, $fon_color[0], $fon_color[1], $fon_color[2]);
$text_color = imagecolorallocate ($img, $font_color[0], $font_color[1], $font_color[2]);
imagettftext ($img, $font_size, 0, 5, $size_img[7] * -1, $text_color, "$path_font/$font", win2uni($text[$num - 1]));
imagepng ($img);
}
?>
|
В результате, изображения не отображаються. Но если перейти по ссылке, то все нормально. | |
|
|
|
|
|
|
|
для: Drago
(26.11.2005 в 18:21)
| | Хм... странно, что в одном случае работает, а в другом нет... Обычно либо и то и то работает, либо не работает везде... | |
|
|
|
|
|
|
|
для: cheops
(26.11.2005 в 22:08)
| | Вот и я не могу понять, в чем дело.
Все, разобрался. :) Банальная ошибка в теге img. Написал scr вместо src. Извените за беспокойство. :) | |
|
|
|