Accueil > php > dimensions-automatique-image-php

{ Récupérer automatiquement la taille d'une image }

Introduction

Aujourd'hui je vais vous apprendre à récupérer automatiquement les dimensions d'une image ainsi que plein d'autres informations utiles grâce au tout-puissant PHP

Cette fonction de PHP qui se nomme getimagesize() est particulièrement bien construite puisque elle retourne un tableau qui contient pas moins de 7 informations sur l'image ! Je vais donc vous montrer comment exploiter ce tableau associatif pour en tirer profit au maximum dans votre code HTML

Getimagesize()

On va commencer par passer en revu toutes les informations que va nous retourner la fonction, en réalité je vais seulement vous présenter les 4 premières car ce sont surtout celles-ci qui nous intéressent le plus dans ce tutoriel, si vous voulez toutefois en savoir plus je vous invite à aller faire un tour sur le site php.net qui contient la documentation complète

Valeur retournée par la fonction

  • Index 0 contient la largeur
  • Index 1 contient la hauteur
  • Index 2 retourne le type de l'image >> par exemple png, jpg, gif, etc..
  • Index 4 quant à lui retourne une chaîne du type height="yyy" width="xxx" qui peut directement être utilisé dans une balise img
  • Exemple

    Maintenant que vous avez cerné à quoi sert cette fonction, je vais vous présenter un exemple concret d'utilisation

    Pour notre exemple on va prendre une page toute simple en PHP où on définit une image (la source, le titre et le texte alternatif). On va passer notre image dans la fonction getimagesize() pour en retirer les bonnes dimensions et les utiliser dans une balise

    <?php
    // Voici les attributs de notre image
    $i["src"] = "4h61j25f.jpg"; $i["title"] = "Clara Morgane"; $i["alt"] = "Clara Morgane en position sexy";
    // On utilise getimagesize pour obtenir les dimensions de l'image $dimensions = getimagesize($i["src"]);
    // Puis, en utilisant le 3ème index $dimensions on récupère directement les dimensions sous la forme height="" width=""
    echo '<img src="'.$i["src"].'" title="'.$i["title"].'" alt="'.$i["alt"].'" '.$dimensions[3].' />';
    ?>

    Résulat

    Clara Morgane en position sexy

    Aller plus loin

    Pour aller plus loin dans l'utilisation de cette fonction vous pouvez exploiter les informations données dans les index allant de 5 à 7, pour obtenir notamment le type mime de l'image (comprenez l'extension), récupérer uniquement la largeur ou la hauteur de votre image, définir si l'image travaille en RGB ou CMYK (respectivement 3 ou 4) ou encore le nombre de bit pour chaque couleur

    Pour info voici le tableau complet que renvoi la fonction getimagesize() pour l'image donnée en exemple

    Array
    (
    [0] => 500
    [1] => 371
    [2] => 2
    [3] => width="500" height="371"
    [bits] => 8
    [channels] => 3
    [mime] => image/jpeg
    )