| Uutiset | Koodikirjasto | Wiki | Keskustelut | FAQ | Info |
Last.fm kuvageneraattoriEntropia 22.01.06 21:16 Generoi kuvia Last.fm statistiikkojen perusteella
<?php # soodattu 22.1.2006 # vaihda oma käyttäjätunnuksesi tähän rimpsuun $urlz = "http://ws.audioscrobbler.com/1.0/user/Entropia/recenttracks.txt"; # 190x350 on soppeli irc-gallerian ihkuboksiin $leveys = "190"; $korkeus = "350"; # luodaan kuvaresurssi ja määritellään värit $kuva = imagecreate($leveys, $korkeus); $valkoinen = imagecolorallocate($kuva, 255, 255, 255); $musta = imagecolorallocate($kuva, 0, 0, 0); $punainen = imagecolorallocate($kuva, 255, 0, 0); # haetaan biisitiedot audioscrobblerin serveriltä $biisit = file($urlz); # määritellään muutama muuttuja aloitusarvoihin $korkeus = 20; $title2 = ""; # tuupataan kuvaan tekstiä imagestring($kuva, 2, 5, 2, "10 viimeksi soittamaani biisiä", $punainen); # käydään läpi biisilista foreach($biisit as $biisi) { # otetaan alusta turha tieto pois $biisi = trim(substr($biisi, 11)); # erotellaan artisti ja biisin nimi list($artisti, $title) = explode(" - ", $biisi); # jos biisin nimi on liian pitkä niin heitetään kahdelle riville if(strlen($title) > 28) { $title2 = substr($title, 28); $title = substr($title, 0, 28); # kirjoitetaan tiedot kuvaresurssiin imagestring($kuva, 2, 10, $korkeus + 20, $title2, $musta); } imagestring($kuva, 3, 5, $korkeus, $artisti, $musta); imagestring($kuva, 2, 10, $korkeus + 10, $title, $musta); # korotetaan korkeus-muuttujaa että seuraava tieto tulee oikeaan kohtaan $korkeus = $korkeus + 28; # jos käytettiin toista riviä niin lisätään lisää korkeutta ja nollataan muuttujat if($title2 <> "") { $korkeus = $korkeus + 10; $title2 = ""; } } # kerrotaan selaimelle että nyt on png-kuvaa tulossa... header("Content-type: image/png"); # ... ja lähetetään valmis kuva imagepng($kuva); # all done. yay. greetings to äiti ?> Turrikka 20:05 23.1.06 Aivan mahtava! Tällästä olen etsinyt jo pitkään! Miten saisi taustan läpinäkyväksi? Entropia 10:53 24.1.06 Taustan pitäisi saada läpinäkyväksi määrittelemällä $valkoinen muuttujan komennolla imagecolorallocatealpha($kuva, 255, 255, 255, 127);. Tosin tämä funktio vaatii vähintään GD:n version 2.0.1. Toimiva esimerkki tästä löytyy mun IRC-Gallerian ihkuboksista. editoitu: 01:29 28.1.06 Turrikka 01:22 28.1.06 Kiitos :) Toimii jopa! molliolli 18:05 3.2.06 Miksi äät ja ööt näkyy oudosti? Entropia 13:30 6.2.06 molliolli kirjoitti: Miksi äät ja ööt näkyy oudosti? Johtuu palvelimestasi. editoitu: 10:07 8.2.06 kedis 09:46 8.2.06 Nuo äät ja ööt saa toimimaan, kun muuttaa $biisi = trim(substr($biisi), 11); muotoon $biisi = trim(substr(utf8_decode($biisi), 11)); Näin ainakin daugin palvelimella. Itse yhdistelin tätä ja omaa koodia ja tein version, joka näyttää vain viimeisimmän kappaleen. Esimerkki IRC-galleriassa nickin pikku-h ihkuboksissa. GaBe 15:19 18.3.06 Muokkasin myös version joka näyttää vain viimeisen. Tein myös siitä toimivan muutamalle kaverilleni, jolloin perään voi kirjoittaa script.php?nick=käyttäjänimi Mitenköhän tuosta saisi vielä virheilmoituksen pois mikäli etsittävää käyttäjänimeä ei löydy?editoitu: 16:16 18.3.06 Entropia 16:16 18.3.06 GaBe kirjoitti: Muokkasin myös version joka näyttää vain viimeisen. Tein myös siitä toimivan muutamalle kaverilleni, jolloin perään voi kirjoittaa script.php?nick=käyttäjänimi Mitenköhän tuosta saisi vielä virheilmoituksen pois mikäli etsittävää käyttäjänimeä ei löydy?Sun pitää varmaan tarkistaa mitä se serveri sieltä oikeasti syöttää, eikai se sen vaikeampaa ole. Missäs tuo skripti on (ja sorsat)? :) On aina kiva kuulla että oman työn hedelmä maistuu muillekin kuin itselle. editoitu: 13:05 19.3.06 GaBe 12:22 19.3.06 Skripti toimii gallerian ihkuboksissani ja kohdat joita muutin: if(!empty($_GET['nick'])){ $nick = $_GET['nick']; }else{ $nick = "GaBe-"; } $urlz = "http://ws.audioscrobbler.com/1.0/user/".$nick."/recenttracks.txt"; $biisi = $biisit[0]; if(!empty($biisi)) { Pistin siis if lauseen foreach:in tilalle |
![]() Haku
|