Jak se generují obrázky ve službě gravatar

Table of Contents

Každý WordPress má u komentářů zabudované propojení se službou gravatar.com. Pokud komentující použije specifickou emailovou adresu zobrazí se u něj charakteristický obrázek (avatar), který si vybral. Jestli na gravatar.com nemá svůj profil, tak je jeho obrázek “náhodně” vygenerován. Pokud jste někdy přemýšleli jak to funguje, tak se dnes dozvíte odpověď.

Jak to funguje #

Aby bylo snadnější manipulovat s emailovou adresou je jednosměrně zašifrována pomocí algoritmu MD5. Takže třeba admin@flyer.cz se promění v b544992eb7ebf5bdd45654a06313169a.

Všechny gravatary se volají na adrese:

  • http://www.gravatar.com/avatar/X

Kde X je právě řetězec, který nám vygeneroval algoritmus MD5 z naší emailové adresy. Když jej zkusíme zadat s našim b544992eb7ebf5bdd45654a06313169a tak dostaneme:

Tohle je základní (default) verze pro neregistrované lidi. Pokud přidáme parametr s můžeme upravit i velikost. Takže si jej třeba zvětšíme na 200px.

Ok, ale nás zajímalo jak se dostat k obrázkům. Ty jsou pod parametrem d, který může mít následující hodnoty:

  • 404 – nenahrávat žádný obrázek, pokud nemá vlastník emailu vytvoření účet a nahraný vlastní obrázek
  • mm – mystery-man, klasická šedivá silueta. Negeneruje se.
  • identicon – generované geometrické tvary
  • monsterid – náhodně vytvořené monstrum s různými atributy (tělo, oči, tvář, barva atd.)
  • wavatar – náhodně vygenerovaná tvář
  • retro – tvář vytvořená po vzorů 8-bitových arkáde her
  • blank – prázdný průhledný obrázek
ukázka mystery-man

http://www.gravatar.com/avatar/39ced0e875087e52c6abfc1e3ab4354d?s=200&d=mm

ukázka identicon

http://www.gravatar.com/avatar/39ced0e875087e52c6abfc1e3ab4354d?s=200&d=identicon

ukázka monsteroid

http://www.gravatar.com/avatar/39ced0e875087e52c6abfc1e3ab4354d?s=200&d=monsterid

ukázka wavatar

http://www.gravatar.com/avatar/39ced0e875087e52c6abfc1e3ab4354d?s=200&d=wavatar

ukázka retro

http://www.gravatar.com/avatar/39ced0e875087e52c6abfc1e3ab4354d?s=200&d=retro

Další rady #

  • Hash si můžete v PHP vytvořit pomocí funkce md5();
  • Vzhledem k tomu, že algoritmus MD5 rozlišuje velká a malá písmena, měli byste před zašifrováním použít funkci strtolower(), která zmenší všechna písmena na malá.
  • gravatar umí zpracovat jakýkoliv hash vytvořený v MD5, takže můžete místo emailu použít například jméno a příjmení, IP adresu anebo jakoukoliv jinou hodnotu specifickou pro uživatele.