jak na vlastni statusbar
pokud jste si všimli, tak někteří lidé mají upravený statusbar se statistikami nalezených a založených cache na geocaching.com. informací jak si statusbar změnit není na netu mnoho, tak se můžeme podívat na možnosti 🙂
- geocaching.cz, mělo by stačit zadat adresu svého statbaru na gc.com, nahrát vlastní obrazek a nastavit si umístění čísla Found a Hidden. podkladový obrázek musí obsahovat popis těchto polí, takže můžeme použít třeba českých názvů.
- devfolio.com, asi nejznámější a nejpropracovanější služba. můžeme si nastavit obrázek zleva, obrázek zprava, pozadí, text. pokud se vám nelíbí ty obrázky co jsou na výběr (všiměte si, nemálo jich je od českých kačerů), tak musíte obrázek poslat autorovi a on ho přidá na web.
- elka.cz, elka pro nás sice připravil php skript, který by měl statusbar pitvořit k obrazu našemu, ale mě se nepodařilo ho rozchodit (viz dále).
- vlastní skript.
při tvorbě vlastního skriptu jsem, coby php analfabet, vycházel ze skriptu od elky. a nakonec se ho podařilo rozhejbat pomocí curl. (nefungovalo mi načtení obrázku pokud byla cesta uvedena s http://
)
do poznamkovýho bloku zkopírujeme následující kód:
<?php // *********************************************************************** // navod z: http://edenik.elka.cz/geocaching-a-statusbary-zoptimalizovano/ // http://www.geocaching.cz/topic/4710-vlastn-obrzek-v-statistice-signature/ // http://www.geocaching.cz/topic/5242-nastavte-si-avatary/ // *********************************************************************** //---- stazeni obrazku ze serveru gc.com // https://web.archive.org/web/20151006160754/http://wiki.dreamhost.com:80/index.php/CURL $image_url = <span class="php-quote">"http://img.geocaching.com/stats/img.aspx?txt=HTC+Kaiser+%2B+GeoGet&uid=c3b9afaa-8556-4ddc-9d17-12459c86528b"; $ch = curl_init(); $timeout = <span class="php-num">0; curl_setopt ($ch, CURLOPT_URL, <span class="php-var">$image_url); curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, <span class="php-var">$timeout); // Getting binary data curl_setopt($ch, CURLOPT_RETURNTRANSFER, <span class="php-num">1); curl_setopt($ch, CURLOPT_BINARYTRANSFER, <span class="php-num">1); // Save image in binary in $image $image = curl_exec(<span class="php-var">$ch); curl_close($ch); //---- avatar $url_img2 = <span class="php-quote">'mikrom.gif'; // vyska musi byt 48 //---- zjistime velikosti obrazku $sirkaObrazku1 = <span class="php-num">200; $vyskaObrazku1 = <span class="php-num">50; list(<span class="php-var">$sirkaObrazku2, <span class="php-var">$vyskaObrazku2) = <span class="php-keyword2">getimagesize(<span class="php-var">$url_img2); //---- vytvoreni obrazku $obrazek1 = imagecreatefromstring(<span class="php-var">$image); $obrazek2 = <span class="php-keyword2">imagecreatefromGIF(<span class="php-var">$url_img2); //---- nastavime vychozi pevne hodnoty $vyska = <span class="php-var">$vyskaObrazku1; $sirka_statusbaru_gc = <span class="php-num">200; //nemenit!!! $aktivni_sirka_statusbaru_gc = <span class="php-num">152; //nemenit!!! $sirka = <span class="php-var">$sirkaObrazku2 + <span class="php-var">$aktivni_sirka_statusbaru_gc; // + $sirkaObrazku3; $posunuti = <span class="php-var">$sirka_statusbaru_gc-<span class="php-var">$aktivni_sirka_statusbaru_gc; //--- vytvorime novy obrazek $novyObrazek = imagecreatetruecolor(<span class="php-var">$sirka, <span class="php-var">$vyska); //---- a nakopirujeme do nej puvodni obrazky imagecopy($novyObrazek, <span class="php-var">$obrazek1, <span class="php-var">$sirkaObrazku2, <span class="php-num">0, <span class="php-var">$posunuti, <span class="php-num">0, <span class="php-var">$sirkaObrazku1, <span class="php-var">$vyskaObrazku1); imagecopy($novyObrazek, <span class="php-var">$obrazek2, <span class="php-num">1, <span class="php-num">1, <span class="php-num">0, <span class="php-num">0, <span class="php-var">$sirkaObrazku2, <span class="php-var">$vyskaObrazku2); //--- vyhodime obrazek na stránku header(<span class="php-quote">'Content-Type:image/png'); imagePNG($novyObrazek); //---- smazeme z pameti abychom ji nezahlcovali imagedestroy(<span class="php-var">$obrazek1); imagedestroy(<span class="php-var">$obrazek2); imagedestroy(<span class="php-var">$novyObrazek); ?>
s tím, že do proměnné $image_url
(11. řádek) uložíme cestu ke statusbaru na geocaching.com a do proměnné $url_img2
(24. řádek) cestu k vlastnímu obrázku (gif, výška 48px), který je uložen na stejném místě jako php skript. a uložíme s příponou .php
.
skript jak jsem pochopil, stáhne původní statusbar, odřízne z něj logo geocachingu a místo něj připlácne náš obrázek 🙂
výsledek už implantujeme jak píše elka:
<img src=„tady bude adresa toho skriptu“ />
tedy v mém případě takto:
<img src=„http://geo.elka.cz/geostat.php“ />
a mělo by to fungovat takto:
po tomto úspěchu už bylo otázkou chvilky skript modifikovat na ten proužek co vidíte v pravém sloupci tohoto webu .
<?php // *********************************************************************** // navod z: http://edenik.elka.cz/geocaching-a-statusbary-zoptimalizovano/ // http://www.geocaching.cz/topic/4710-vlastn-obrzek-v-statistice-signature/ // http://www.geocaching.cz/topic/5242-nastavte-si-avatary/ // *********************************************************************** //---- stazeni obrazku ze serveru gc.com // https://web.archive.org/web/20151006160754/http://wiki.dreamhost.com:80/index.php/CURL $image_url = <span class="php-quote">"http://img.geocaching.com/stats/img.aspx?txt=View+my+profile&uid=c3b9afaa-8556-4ddc-9d17-12459c86528b"; $ch = curl_init(); $timeout = <span class="php-num">0; curl_setopt ($ch, CURLOPT_URL, <span class="php-var">$image_url); curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, <span class="php-var">$timeout); // Getting binary data curl_setopt($ch, CURLOPT_RETURNTRANSFER, <span class="php-num">1); curl_setopt($ch, CURLOPT_BINARYTRANSFER, <span class="php-num">1); // Save image in binary in $image $image = curl_exec(<span class="php-var">$ch); curl_close($ch); //---- vytvorime obrazek $input $image_width = <span class="php-num">200; $image_height = <span class="php-num">50; $input = imagecreatefromstring(<span class="php-var">$image); //--- vytvorime novy obrazek $output $output_width = <span class="php-num">140; $output_height = <span class="php-num">9; $output = imagecreatetruecolor(<span class="php-var">$output_width, <span class="php-var">$output_height); //---- do obrazku $output nakopirujeme cast obrazku $input imagecopy($output, <span class="php-var">$input, <span class="php-num">0, <span class="php-num">0, <span class="php-num">53, <span class="php-num">22, <span class="php-var">$image_width, <span class="php-var">$image_height); //---- vyhodime obrazek na stránku header(<span class="php-quote">'Content-Type: image/png'); imagePNG($output); //---- smazeme z pameti abychom ji nezahlcovali imagedestroy(<span class="php-var">$input); imagedestroy(<span class="php-var">$output); ?>
zdravím mam podle tohodle navodu udělaný status bar ale když do loga použiju ruhledný gif ma v pozadí černou barvu da se to nějak upravit ?
dalsi sluzba: http://vypatlator.cz/statbar/