Hombre, mira tú por donde, estaba buscando una manera de mejorar mi firma y me interesa eso de sacar más datos pasando una cookie al server de Microsoft.
Me pasó shaddow sus librerías hace un tiempo pero apenas he podido mirarlas, así que os pongo aquí el código de mi firma V3.
Esto hay que meterlo en un archivo PHP o en un PNG + un .htaccess configurado con lo de "forcetype".
<?
Header("Content-type: image/png");
$GTUltra = $_GET['gt'];
$Importar = $_GET['foto'];
//$GTUltra = str_replace("%20"," ",$GTUltra);
$BaseFirma = imagecreatefrompng($Importar);
$Estructura = imagecreatefrompng("estructura.png");
imagecopy($BaseFirma,$Estructura,0,0,0,0,300,180);
$gestor = fopen("http://gamercard.xbox.com/".$GTUltra.".card", "r");
while (!feof($gestor)) { $buffer = fgets($gestor, 4096); }
fclose($gestor);
// Extracción de datos
preg_match("!<span class="XbcFLAL">(.*?)</span>!i", $buffer, $usuario);
preg_match("!src="/xweb/lib/images/G_Icon_External.gif" /></span><span class="XbcFRAR">(.*?)</span>!i", $buffer, $puntos);
preg_match("!<span class="XbcFLAL">Zona</span><span class="XbcFRAR">(.*?)</span>!i", $buffer, $zona);
preg_match("!<img class="XbcgcGamertile" height="64" width="64" src="(.*?)" />!i", $buffer, $imagen);
preg_match("!<span class="XbcFLAL">Rep</span><span class="XbcFRAR"><img src="(.*?)" />!i", $buffer, $estrellas);
// 1,4,7,10...: Links -- 2,5,8,11..: Titulos -- 3,6,9,12...: Imágenes
// Llamada: $juego[3], $juego[6], $juego[9]...
preg_match("!<div class="XbcgcGames"><a href="(.*?)"><img height="32" width="32" title="(.*?)" alt="" src="(.*?)" /></a><a href="(.*?)"><img height="32" width="32" title="(.*?)" alt="" src="(.*?)" /></a><a href="(.*?)"><img height="32" width="32" title="(.*?)" alt="" src="(.*?)" /></a><a href="(.*?)"><img height="32" width="32" title="(.*?)" alt="" src="(.*?)" /></a><a href="(.*?)"><img height="32" width="32" title="(.*?)" alt="" src="(.*?)" /></a>!i", $buffer, $juego);
$juego1 = imagecreatefromjpeg($juego[3]);
$juego2 = imagecreatefromjpeg($juego[6]);
$juego3 = imagecreatefromjpeg($juego[9]);
$juego4 = imagecreatefromjpeg($juego[12]);
$juego5 = imagecreatefromjpeg($juego[15]);
$avatar = imagecreatefromjpeg($imagen[1]);
$repu = imagecreatefromgif("http://gamercard.xbox.com".$estrellas[1]);
$color = imagecolorallocate($BaseFirma,255,255,255);
$colorGT = imagecolorallocate($BaseFirma,255,255,255);
// Explicación:
// imagecopy(Destino, Origen, X Destino, Y Destino, X Origen, Y Origen, Ancho, Alto);
imagecopy($BaseFirma,$repu,188,3,0,0,65,10); //Estrellas Reputación
// imagecopy($BaseFirma,$Contenedor,226,16,0,0,28,9);
//imagettftext($BaseFirma,8,0,226,16,$colorGT,$fuenteGT, $puntos[1]); //GamerPoints
imagestring($BaseFirma,2,226,14,$puntos[1],$colorGT);
imagecopy($BaseFirma,$juego1,262,2,0,0,32,32); //Juego 1
imagecopy($BaseFirma,$juego2,262,38,0,0,32,32); //Juego 2
imagecopy($BaseFirma,$juego3,262,74,0,0,32,32); //Juego 3
imagecopy($BaseFirma,$juego4,262,110,0,0,32,32); //Juego 4
imagecopy($BaseFirma,$juego5,262,146,0,0,32,32); //Juego 5
imagecopyresized($BaseFirma,$avatar,1,132,0,0,48,48,64,64); //Avatar Live
$texto = $usuario[1];
imagestring($BaseFirma,7,2,6,$texto,$color);
imagepng($BaseFirma);
imagedestroy($Estructura);
imagedestroy($BaseFirma);
imagedestroy($juego1);
imagedestroy($juego2);
imagedestroy($juego3);
imagedestroy($juego4);
imagedestroy($juego5);
imagedestroy($avatar);
imagedestroy($repu);
imagedestroy($Importado);
?>
¿Como funciona? Sólo tenéis que pasarle los parámetros GT y FOTO, donde GT es vuestro GamerTag y foto es una imágen PNG 8 bits de 300x180pix. Este es el tamaño ideal para que su peso no exceda (la mayoría de las veces) lo permitido por EOL. Lo malo es que no soporta espacios en los nicks, pero se arregla fácil
Ejemplo:
http://diskun.275mb.com/firma.php?gt=RonTarantino&foto=http://img477.imageshack.us/img477/7674/reservoir7pt.png
http://diskun.275mb.com/firma.php?gt=Cyberbask&foto=http://img5.imageshack.us/img5/9084/pgr39ry.png
Etc...
Saludos
p.d. La versión que yo uso, que cambia la imágen cada vez que se carga, no permite pasar otros nicks por parámetro.