Geocaching a statusbary – zoptimalizováno
Včera jsme si po třech letech geocachingu (kdo neví, o čem mluvím, tak tady najde přehršel informací) dopřáli ten luxus a zaplatili si roční předplatné premium účtu. Výhod je hned několik, ale pro mě nejpodstatnější je ta, že si můžu nastavit upozornění na nově vzniklé keše v okolí např. 10 km od domova a pak pořádat s obdobně postiženými kačery hony na tzv. FTF, neboli First The Find, což je kouzelná zkratka, za kterou by mnoho maniaků v dešti a sněhu jelo smykem přes půl města na sjetých letních gumách ve své škodě 110. Hned večer jsme si to vyzkoušeli na vlastní kola na nově vzniklé kešce nedaleko našeho bydliště. Adrenalin jak byk
Když už je člověk premium členem, chce se nějak odlišit. A proč nezačít statusbarem. To je ikonka, jejíž kód si můžete nechat vygenerovat přímo serverem geocaching.com, ukazuje kolik kešek jste našli, kolik založili, odkazuje na váš profil a vypadá takto:
Vyhovovala mi přesně tak dlouho, než jsem zjistil, že lze změnit. Na českém fóru o geocachingu se někdo zmínil o serveru devfolio.com, kde si můžete takový statusbar vygenerovat sami buď z dostupných obrázků, nebo autorovi zašlete vlastní, on je publikuje, až se vyspí a pak je máte k dispozici. Zkusmo jsem tam jeden poslal, abych službu otestoval. Opravdu to funguje.
Pak mě ale napadlo, co bude, až server devfolio.com třeba jednou zavře krám? Kam se podějou ty desítky či stovky tisíc statusbarů? Pokud máte vlastní server, není nic snažšího, než použít kód, který nabízím níže. Princip asi nemusím vysvětlovat. Jediné, co je třeba změnit, jsou odkazy na obrázky v proměnných url_img1, url_img2 a url_img3. Výsledkem je vygenerovaný PNG soubor, který vložíte do odkazu SRC značky IMG a hotovo. Snadné, což?
Kód je nyní optimalizován pro použití bez nutných úprav velikostí obrázků
<?
$url_img1 = "http://img.geocaching.com/stats/img.aspx?txt=+4+...";
//zde bude kód, který vyčteme ze stránky pro generování statusbaru na geocaching.com
$url_img2 = "http://geo.elka.cz/geo_czech.gif"; //sirka musi 48
$url_img3 = "http://geo.elka.cz/geo_netko.gif"; //sirka musi 48
list($sirkaObrazku1, $vyskaObrazku1) = getimagesize($url_img1);
list($sirkaObrazku2, $vyskaObrazku2) = getimagesize($url_img2);
list($sirkaObrazku3, $vyskaObrazku3) = getimagesize($url_img3);
//---- zjistime velikosti 3 obrazku
$obrazek1 = imagecreatefrompng($url_img1);
$obrazek2 = imagecreatefromgif($url_img2);
$obrazek3 = imagecreatefromgif($url_img3);
$vyska = $vyskaObrazku1;
//---- nastavime vychozi pevne hodnoty
$sirka_statusbaru_gc = 200; //nemenit!!!
$aktivni_sirka_statusbaru_gc = 152; //nemenit!!!
$sirka = $sirkaObrazku2 + $aktivni_sirka_statusbaru_gc + $sirkaObrazku3;
//--- vytvorime novy obrazek
$novyObrazek = imagecreatetruecolor($sirka, $vyska);
//---- a nakopirujeme do nej puvodni obrazky
imagecopy($novyObrazek, $obrazek1, $sirkaObrazku2, 0, $sirka_statusbaru_gc-$aktivni_sirka_statusbaru_gc, 0, $sirkaObrazku1, $vyskaObrazku1);
imagecopy($novyObrazek, $obrazek2, 1, vyskaObrazku1+1, 0, 0, $sirkaObrazku2, $vyskaObrazku2);
imagecopy($novyObrazek, $obrazek3, $aktivni_sirka_statusbaru_gc+$sirkaObrazku2-1, vyskaObrazku1+1, 0, 0, $sirkaObrazku3, $vyskaObrazku3);
//--- vyhodime obrazek na stránku
header("Content-Type:image/png");
imagepng($novyObrazek);
?>
Samotný skript v nějaké stránce pak použijete takto:
<img src="tady bude adresa toho skriptu" /> tedy v mém případě takto: <img src="http://geo.elka.cz/geostat.php" />
A výsledek pak může vypadat třeba takto:

Související články
4 komentářů k “Geocaching a statusbary – zoptimalizováno”
Napište komentář
Upozornění:
Tento weblog píše skutečná osoba, jejíž internetová identita se skrývá za přezdívkou eLKa. Ačkoli to zní jako ženská přezdívka, není tomu tak. Pokud není uvedeno jinak, názory a postřehy zde prezentované jsou osobními názory autora. Někomu se mohou a někomu nemusí líbit. Autorovi je to jedno. Pokud máte nějakou konstruktivní připomínku k tématu článku, napište ji do komentářů. Vulgární názory budou vyretušovány. Pokud máte jakoukoli připomínku, či názor k osobě autora, který se netýká článku, nepište jej do komentářů, protože s největší pravděpodobností bude smazán. Chcete-li autorovi napsat, využijte odkazu KONTAKT v menu nahoře, případně ti všímavější mohou kliknout rovnou na to zvýrazněné slovo v předešlé části věty. Děkuji za pochopení.
Pokud se vám tady líbí, můžete autorovi přispět almužničkou na důchodové připojištění. Můžete k tomu použít ikonu pod tímto textem. Předem děkuji.

5. Březen 2008 v 15:38
Dobrý den,
za znakem < by zřejmě neměla být mezera, možná by bylo dobré to opravit, aby paka jako já nemusela pět minut přemýšlet, co udělala špatně
[Odpovědět]
eLKa odpovídá Březen 5th, 2008:
Opraveno. Omlouvám se za Wordpress
Bestyje si usmyslela, že do článku prostě zobák a otazník nepatří. Taky jsem to mohl rovnou napsat jako entitu, že
[Odpovědět]
10. Březen 2008 v 16:21
Ahoj.
. Neslo by tam nejakym zpusobem pridat i pozadi?
Moc pekne
Diky za odpoved.
[Odpovědět]
8. Únor 2009 v 12:44
Dobrý den,
měl jsem s vytvářením status baru trochu problémy, komentář ve skriptku by měl asi být u URL obrázku: //viska musí 48px
a fungovaly mě jen obrázky s příponou .GIF, png jsem nezkoušel.
Pak jsem si dovolil použít Vaši krásnou mapku, tak kdyby to vadilo, dejte vědět.
Jinak móóóóc děkuji za skript je to super.
S pozdravem nasud
[Odpovědět]