PHP: Générer une Image à la Volée pour l’Indice Energétique d’un Logement

Voici un petit script php permettant de générer à la volée l’indice énergétique d’un logement. Pour réaliser cette image, nous utilisons deux images: une affichant les différents niveaux et une autre pour le curseur. Ce dernier est affiché par-dessus la première image en fonction de la valeur passée en paramètres. La valeur est écrite dans le curseur.

Voici le résultat pour une valeur de 50 (le src de l’image est http://leblogduwebmaster.fr/demos/indicesenergetiques/img.php?valeur=50).

indice énergétique 50

pour une valeur de 500

indice énergétique 500

<?php

// Create image instances
$src = imagecreatefrompng('indicesanscurseur.png');
$dest = imagecreatetruecolor(389, 365);

// BACKGROUND
imagecopy($dest, $src, 0, 0, 0, 0, 389, 365);

$cursorY = 0;
$cursorCenterY = 20;
if(isset($_GET['valeur'])){
    $valeur = $_GET['valeur'];
} else {
    $valeur = 0;
}


if ($valeur <= 50) {
    $cursorY = 51 - $cursorCenterY;
} elseif ($valeur >= 51 &amp;&amp; $valeur <= 90) {
    $cursorY = 94 - $cursorCenterY;
} elseif ($valeur >= 91 &amp;&amp; $valeur <= 150) {
    $cursorY = 137 - $cursorCenterY;
} elseif ($valeur >= &amp;&amp; $valeur <= 230) {
    $cursorY = 180 - $cursorCenterY;
} elseif ($valeur >= 231 &amp;&amp; $valeur <= 330) {
    $cursorY = 224 - $cursorCenterY;
} elseif ($valeur >= 331 &amp;&amp; $valeur <= 450) {
    $cursorY = 268 - $cursorCenterY;
} elseif ($valeur > 450) {
    $cursorY = 312 - $cursorCenterY;
}

$textY = $cursorY+10;

$cursor = imagecreatefrompng('cursor.png');
imagecopy($dest, $cursor, 300, $cursorY, 0, 0, 78, 59);

$textcolor = imagecolorallocate($dest, 255, 255, 255);
imagestring($dest, 20, 325, $textY, $valeur, $textcolor);

// Output and free from memory
header('Content-Type: image/png');
imagepng($dest);

imagedestroy($dest);
imagedestroy($src);
imagedestroy($cursor);
?>

Les deux images: background et le curseur.

Améliorations possibles: ajouter une ligne partant du curseur et allant jusqu’à la flèche de la classe énergétique.

Publié dans PHP

quand j’aurai le temps

  • les filtres wordpress
  • plugin wordpress et enregistrement de données
  • les wordpress custom post type
  • la bdd d'un blog wordpress
  • la balise more de wp
  • personnaliser une galerie wp
  • gérer les longueurs des extraits de wp
  • les animations css3
  • le memento symphony2
  • le squelette d'une page html5
  • liste sur plusieurs colonnes
  • le responsive design
  • exemple d'un jeu basique en html5
  • la réplication des bases de données
  • mettre en place une architecture en silo avec wp
  • parser un fichier xml (donc un rss) avec php5
  • mettre en place lightbox sans plugin
  • améliorer les performances de son wp
  • ajouter un bouton à l'éditeur de texte de wp
  • ...