Verifier Les Derniers Articles:
Vos platines en signature

Alors nous voici partis pour un tutoriel ayant pour but de se créer une image en PHP rassemblant toutes les images de trophées platines que vous avez obtenus à la sueur de vos manettes.

Fonctionnement du système :

  1. Le script PHP ban_dyn.php5 crée d’abord une image (un canvas) avec une couleur de fond .
  2. Les images placées dans le dossier platine/ sont importées grâce à la GDL.
  3. On dispose les images les unes après les autres en ligne de 7 images.

Et voici le résultat:

Voici le résultat !
Voici le résultat !

Préparation:

Tout d’abord nous allons récupérer les images de nos précieux platines.
Pour cela aller sur https://secure.eu.playstation.com/sign-in/ et se connecter.

log au PSN

Une fois connecté, allez dans l’onglet « Mes trophées » et choisir un jeu avec un platine obtenu.

cliquez sur longlet Mes trophées
cliquez sur l’onglet Mes trophées

Enregistrez l’image sous dans un dossier quelconque et répéter l’opération pour chacun de vos platines .

enregistrez une image
enregistrez une image

Apres avoir récupérer tous vos platines, on effectue le processus inverse: uploader les images dans un dossier que nous nommerons « platine »,et ensuite créez un fichier .php5 (qui va contenir tout le code) à coté du dossier platine.

dossier contenant les images à uploader
dossier contenant les images à uploader

et voici le résultat de l’upload, le dossier « platine » :

le répertoire en ligne qui contient mes platines.
le répertoire en ligne qui contient mes platines.

voici l’arborescence :

arborescence

arborescence

Construction du script :

Choix du header:

Il faut dire au navigateur web(chrome,firefox,safari…) que nous envoyons une image,donc on met type mime en « image/png » :

<?php
header( »Content-type: image/png »);

Création du canvas et couleur de fond :

Ensuite il faut créer un canvas sur lequel on va disposer nos trophées,
il faut qu’il ait une taille précise,en effet il faut savoir combien d’images de platine faut-il afficher.
Pour cela on peut utiliser la fonction scandir(),cette fonction renvoie un tableau contenant le nom des fichier et répertoires qu’il y a dans le dossier testé puis on utilise count() pour savoir le nombre de case dans
ce tableau, cependant il faut soustraire les dossiers ‘.’ et ‘..’ ,en effet scandir() renvoie le nombre de fichiers +2.

//ouverture du dossier d’image de trophée
$dir=$_SERVER['DOCUMENT_ROOT'].’/old/documents/ftp/upload/platine/’;
$files=scandir($dir,1);
$counted=count($files)-2;// ‘..’ et ‘.’

$lignes=$counted/7;// 7 par platines / lignes
if(floor($counted/7)!=$lignes) // si $lignes est réel(virgule)
{
$lignes++;//on arrondit à l’entier supérieur
$lignes=floor($lignes);//et on enlève les chiffres après la virgule
}

Ensuite on utilise la fonction ImageCreateTrueColor(largeur,hauteur), qui va créer le canvas,on multiplie la hauteur par le nombre de lignes calculés précédemment cette fonction renvoie un descripteur.
On colore le canvas avec une couleur grâce à la fonction ImageColorAllocate($can,R,G,B) qui prend en paramètre le descripteur du canvas et une couleur en RGB.

$canvas=ImageCreateTrueColor(316,45*$lignes);//création du canvas
ImageColorAllocate($canvas,255,255,255);//remplissage du fond

le canvas
le canvas

Assemblage des platines sur le canvas:

Voici donc la boucle qui positionne les images sur le canvas :

$i=0;$y=0;$x=0;$trophy=array();

while($files[$i]!=’..’)//on sort dès qu’on a traité toutes les images
{
//recuperation de l’image de platine
$img=$dir.$files[$i];
$trophy[$i]=ImageCreateFromPng($img);//importe l’image,stockée dans le tableau
//reassemblage des images
if($x==6)//dès qu’on arrive au bout de la ligne
{
//on copie l’image du platine sur le canvas aux coordonnées précises
imagecopymerge($canvas, $trophy[$i], 45*$x, 45*$y, 0, 0, 45, 45, 100);
$x=0;//on reviens au début de la ligne
$y++;
$i++;
}
else
{
imagecopymerge($canvas, $trophy[$i], 45*$x, 45*$y, 0, 0, 45, 45, 100);
$i++;
$x++;
}
}

Désolé pour l’indentation…

Enfin bref pour finir,on renvoie l’image ainsi faite grâce a la fonction ImagePng()

ImagePng($canvas);
?>

ImagePng($canvas);
?>

Utilisation du script

Maintenant il ne manque plus qu’a inclure l’image dans votre signature:

mettre lurl dans la signature

mettre l'url dans la signature

et le résultat final:

Admirer votre signature
Admirer votre signature

Et enfin, si vous rajoutez une image dans le dossier platine/ votre image se mettra automatiquement à jour.

Par contre il y a certains forums qui bloquent les images qui finissent avec l’extension.php…j’ai pas encore trouver de solution à ça.



  1. Il n'y a pas de commentaires ! Pourquoi ne pas en poster un response?




-->