ОсновноеRadiotalkПользовательское
Общие вопросы по интернет радио вещанию
6   •   Посмотреть все темы

Грфическая информация о станции (icecast2+php)

 

6245
Тарас @tarasian666
Psyhodelic пишет:

tarasian666 нет кракозябры.

пощелкайте кодировки, когда увидите кирилицу - значит попали на нужную кодировку, вот из нее и надо кодировать

144
Руся @Ruskat
А мона ли как-то вывести инфо на юкозе методом ява-скрипта. Чтобы данные из айскаст-сервера брались?

3
kaznet @kaznet
Ruskat Нет, через java скрипты такое не возможно

6245
Тарас @tarasian666
может с помощью ajax возможно

144
Руся @Ruskat
tarasian666? Як?

6245
Тарас @tarasian666
Ruskat теоретично :) на практиці не пробував

144
Руся @Ruskat
tarasian666 То давай теорію :)
да.. И как читать инфо с параметра server_description ?

Отредактировано Ruskat - 26.07.2010
6245
32
Pawel @pawel-engraf
а как можно такое жо но для shoutcast сделать?

6245
Тарас @tarasian666
суть та же но просто вставить скрипт парсинга shoutcast всесто
Показать текст

349
Юрий @Всё-просто
у меня название трека вылезает за рамки изображения , подскажите что нужно дописать чтобы слишком длинные названия переносились на слудующую строку

6245
Тарас @tarasian666
делаем strlen проверяя длинну и лишнее с конца отрезаем substr, потом обрезаем в начале нужное кол-во и вставляем в другую строчку

349
Юрий @Всё-просто
tarasian666 хех, все бы хорошо. однако php не мое , можно ли как то по подробней?

468
Klef @Klef
я например делаю так
$mr=imagettfbbox (6,0, $font, $cur);
$pr=$mr[2];
$ds=strlen($cur);

while ($pr >= $raz) {

$cur1=substr($cur,0,$ds);
$mr=imagettfbbox (6,0, $font, $cur1);
$pr=$mr[2];
$ds=$ds-1;
}
if ($ds!=strlen($cur)) {$cur=$cur1."...";}
imagettftext ($im, 6, 0, $x, $y, $color, $font, $cur);

выполняется чуть дольше, но удобней на "моно" шрифтах

349
Юрий @Всё-просто
этим дополнять файл php ?

468
Klef @Klef
по желанию

вот есть есть строка вида, что вылазит за границы, предположим она генерируются строкой
imagettftext ($im, 6, 0, $x, $y, $color, $font, $cur);
где $cur это переменная с текстом, тогда перед ней фигачиш вставку, меняя $cur на что у тя в коде

349
Юрий @Всё-просто
я взял вот этот код изменил только положение
<?php
header ("Content-type: image/png");
$im = ImageCreateFromPng("blank.png");
$color = imagecolorallocate ($im, 255, 255, 255);


$file_name='http://wasteland.spb.su:8080/status2.xsl';
$r=fopen($file_name,'r');
$text=fread($r,1000);
fclose($r);
$mass=explode(",", $text);
$current="track".$mass [16];

imagettftext ($im, 6, 0, 15, 20, $color, "ft.ttf",$current);
imagepng ($im);
imagedestroy ($im);
?>

Отображалось все как надо

Добавил к нему

$mr=imagettfbbox (6,0, $font, $cur);
$pr=$mr[2];
$ds=strlen($cur);

while ($pr >= $raz) {

$cur1=substr($cur,0,$ds);
$mr=imagettfbbox (6,0, $font, $cur1);
$pr=$mr[2];
$ds=$ds-1;
}
if ($ds!=strlen($cur)) {$cur=$cur1."...";}
imagettftext ($im, 6, 0, $x, $y, $color, $font, $cur);

картинка опустела

833
metra52 @metra52
ты переменные сравни. они разные

468
Klef @Klef
$mr=imagettfbbox (6,0, $font, $cur);
$pr=$mr[2];
$ds=strlen($cur);

while ($pr >= $raz) {

$cur1=substr($cur,0,$ds);
$mr=imagettfbbox (6,0, $font, $cur1);
$pr=$mr[2];
$ds=$ds-1;
}
if ($ds!=strlen($cur)) {$cur=$cur1."...";}
imagettftext ($im, 6, 0, $x, $y, $color, $font, $cur);


забыл сказать в переменной $raz храниться значения максимальной длины строки в пикселях.

349
Юрий @Всё-просто
то есть получается так (я предполагаю) :/

<?php
header ("Content-type: image/png");
$im = ImageCreateFromPng("blank.png");
$color = imagecolorallocate ($im, 255, 255, 255);


$file_name='http://wasteland.spb.su:8080/status2.xsl';
$r=fopen($file_name,'r');
$text=fread($r,1000);
fclose($r);
$mass=explode(",", $text);
$current="track".$mass [16];

$mr=imagettfbbox (6,0, $font, $file_name);
$pr=$mr[2];
$ds=strlen($file_name);

while ($pr >= $raz) {

$cur1=substr($cur,0,$ds);
$mr=imagettfbbox (6,0, $font, $cur1);
$pr=$mr[2];
$ds=$ds-1;
}
if ($ds!=strlen($file_name)) {$file_name=$cur1."...";}
imagettftext ($im, 6, 0, $x, $y, $color, $font, $cur);

imagettftext ($im, 6, 0, 15, 20, $color, "ft.ttf",$current);
imagepng ($im);
imagedestroy ($im);
?>

несмейтесь... :D