PHP Forum

PHP Forum (http://www.selfphp.de/forum/index.php)
-   PHP Grundlagen (http://www.selfphp.de/forum/forumdisplay.php?f=12)
-   -   PHP => PNG (http://www.selfphp.de/forum/showthread.php?t=10072)

Bogi 24.03.2005 20:01:39

PHP => PNG
 
Hi Leute!
Ich habe eine Community mit Webradio und will nun eine Webradio-Signatur erstellen, wo der Status des Radios und der aktuelle Song drin stehen!

Das würde ich ja hinbekommen, ausser folgendes .. deswegen frag ich ja hier nach:
Wie kann man in so eine PNG-Datei nicht nur Text sondern auch ein Logo oder ähnliches einbinden?

danke schon mal im vorraus für jede konstruktive antwort!

mfg, bogi

edit:
noch ein problem:
es werden ja der status und der song nicht direkt zum script hingesendet, sondern die müssen ja erst abgeholt werden, und das passiert ja nicht, wenn man die png aufruft, oder? wie kann man dieses problem lösen?

|Coding 24.03.2005 20:09:32

AW: PHP => PNG
 
schau dir mal die funktion [FUNC]imagecopymerge()[/FUNC] an oder wenn du generell noch nicht mir den image-funktionen gearbeitet hast, diese seite: http://de.php.net/image

|Coding 24.03.2005 20:12:05

AW: PHP => PNG
 
Zitat:

Zitat von Bogi
es werden ja der status und der song nicht direkt zum script hingesendet, sondern die müssen ja erst abgeholt werden, und das passiert ja nicht, wenn man die png aufruft, oder? wie kann man dieses problem lösen?

du könntest eine abfrage in der datei ausführen in der du das png erstellst. eventuell müsstest du den aktuellen song irgendwo speichern (datei oder db).

wie streamst du denn?

Bogi 24.03.2005 20:19:38

AW: PHP => PNG
 
hi! schon mal danke für die schnellen antworten!

gestreamt wird mit shoutcast ...

so ein code zum auslesen von status und song sieht da in etwa so aus:
PHP-Code:

<?php
$serverip
="xxxx"//IP vom Shoutcast-Server
$serverport="xxxx"//Serverport
$fp = @fsockopen($serverip$serverport, &$errno, &$errstr30);
 
fputs($fp,"GET /7.html HTTP/1.0rnUser-Agent: XML Getter (Mozilla Compatible)rnrn");
 while(!
feof($fp)) {
  
$datei .= fgets($fp1000);
 }
 
fclose($fp);

if(
$eintraege[1]==1$status ="<b><span style="color:#33cc33">ON AIR</span></b>"; else $status = "<b><span style="color:#cc0000">Offline</span></b>";
$echo='Status: '.$status.'

if($eintraege[1]==1)
{
$echo= '
Song: <b>'.$eintraege[6].';


}
?>

dürfte so eigentlich passen!!!
aber damit die daten ins png-bild übernommen werden, muss ja die php aufgerufen werden, oder?!

|Coding 24.03.2005 21:13:56

AW: PHP => PNG
 
Zitat:

Zitat von Bogi
PHP-Code:

$echo='Status: '.$status


da fehlt ein ";" und das letzte " ' " ist zuviel.
sollte das script so funzen, dann musst du es in die php datei (die fürs img) etwas umgeändert einbauen. du musst die ausgabe rausnehmen und diese halt für das image umschreiben.

Bogi 24.03.2005 21:50:05

AW: PHP => PNG
 
so, ich bin jetzt ein bisschen weiter gekommen ...
mein code zur zeit:
PHP-Code:

<?php

$serverip
="xxxxxxxxx"//IP vom Shoutcast-Server
$serverport="xxxx"//Serverport
$fp = @fsockopen($serverip$serverport, &$errno, &$errstr30);
    
fputs($fp,"GET /7.html HTTP/1.0rnUser-Agent: XML Getter (Mozilla Compatible)rnrn");
        while(!
feof($fp))
        {
            
$datei .= fgets($fp1000);
        }
    
fclose($fp);

$datei ereg_replace(".*<body>"""$datei);
$datei ereg_replace("</body>.*"","$datei);
$eintraege explode(",",$datei);

if(
$eintraege[1]==1)
{
    
$status "Radio ist ON AIR >>> Song: '.$eintraege[6].'";
}

if(
$eintraege[1]==0)
{
    
$status "Radio ist Offline";
}

else
{
    
$status "Error!";
}


$fp1=fopen('radio.txt','w');
fwrite($fp1$status);
fclose($fp1);
$font   2;
$imgw  ImageFontWidth($font) * strlen($status) + (10ImageFontWidth($font));
if (
strlen($status) > 200) {
$status substr($status10100).'..';
$imgw ImageFontWidth($font) * strlen($status) + (10ImageFontWidth($font));
}
$imgb = ($imgw -1);
$im ImageCreate(46860);
$bgc ImageColorAllocate($im237237237);
$black ImageColorAllocate($im000);
ImageFill($im00$bgc);
ImageString($im$font30"$status"$black);

Imagepng($im'radio.png');

?>

es wird aber zur zeit NUR "Error!" ausgegeben!

ausserdem glaub ich, dass das bild nur neu generiert wird, wenn die php im browser aufgerufen wird, oder?

|Coding 24.03.2005 21:59:12

AW: PHP => PNG
 
ja, das ist richtig. nur bei reload, wird das bild aktualisiert.

das: ImageString($im, $font, 3, 0, "$status", $black);
gehört so: ImageString($im, $font, 3, 0, $status, $black);

lass dir mal $eintraege[1] ausgeben, vielleicht tut sich dann der fehler auf.

Bogi 24.03.2005 22:07:44

AW: PHP => PNG
 
Zitat:

Zitat von |Coding
ja, das ist richtig. nur bei reload, wird das bild aktualisiert.


versteh ich jetzt nicht ganz?!
reload = reload im browser
oder
reload = bestimmter php-befehl
???

ich würde eher das erste vermuten, aber das funktioniert ja nur, wenn die php neu aufgerufen wird, ich will aber, dass dann die php unbeteiligt bleibt ....

den rest kann ich grad nicht ausprobieren, weil der sc-server grad nicht mehr will ... nur weil mir versehentlich justin timberlake in die playlist gerutscht ist *lol*

mfg

|Coding 24.03.2005 22:44:24

AW: PHP => PNG
 
wie kannst du sowas auch nur laufen lassen *g*

zum anderen, ja die php datei wird auch wieder mitgeladen und wenn du das nicht möchtest, dann könntest du das "bild" in einer datei auf dem server erstellen und diese datei bindest du dann in die seite mit ein. läuft ein neuer song an, dann aktuallisierst du die datei und die user sind "up-to-date" (natürlich nur nach reload im browser).

xabbuh 25.03.2005 10:04:52

AW: PHP => PNG
 
Das Neuladen des Bildes könnte ja dann über ein JavaScript erfolgen.


Alle Zeitangaben in WEZ +2. Es ist jetzt 18:38:03 Uhr.

Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.