Taille d’une image avec getimagesize

Publié dans PHP | Marqué avec
Share

Ouhahou, ça faisait longtemps ! Il faut dire que je suis parti en vacances tout une semaine, que c’est un peu le rush au boulot ces derniers temps, et accessoirement que j’ai de moins en moins Internet chez moi. Bref, j’ai reussi cahin caha à apprendre de nouvelles choses pendant au moins 30 minutes chaque jour, mais pour mettre ces découvertes à l’écrit, il m’aurait fallu un peu plus de temps. Hier, je cherchais à connaitre les dimensions (largeur et hauteur) d’une image. J’ai d’abord pensé à imagesx() et imagesy() que j’avais déjà utilisé et qui renvoie respectivement la largeur et la hauteur de l’image dont le descripteur est passé en argument. C’est justement là le problème, puisque pour ce servir de ces fonctions il faut d’abord utiliser imagecreatefromjpeg('nom du fichier image') ce qui n’est quand même pas très pratique. Surtout quand on tombe sur getimagesize(‘nom du fichier image’) ! Cette fonction retourne non seulement la largeur et la hauteur de l’image étudiée, mais aussi son format (notamment au format mime), son type de coloration (RGB ou CMYK) ! C’est plutôt beau, non ? Voyons un petit exemple :

<?php
echo '<pre>';
print_r(getimagesize('test.gif'));
echo '</pre>';

Ce qui retourne :

Array (
    [0] => 45
    [1] => 45
    [2] => 1
    [3] => width="45" height="45"
    [bits] => 7
    [channels] => 3
    [mime] => image/gif ) 

Voilà ce qui peut être utile :

  • Le champ 0 retourne la largeur en pixel. On retrouve cette largeur dans le champ 3 dans une chaine de caractères directement utilisable dans du code HTML
  • Le champ 1 retourne la hauteur en pixel. On retrouve cette hauteur dans le champ 3 dans une chaine de caractères directement utilisable dans du code HTML
  • Le champ 2 et mime retournent le format de l’image. Le champ 2 par son numéro, le champ mime au format mime utilisable directement dans les entêtes HTTP.

C’est quelque chose que je cherchais depuis quelque temps, le problème c’est que j’ai oublié dans quel projet j’en avais besoin…
Au passage, 2 autres informations dont je pense ne jamais me servir :

  • Le champ bits retourne le nombre de bits par couleur. ça peut boguer avec le format Gif. J’ai pas trop compris ce que cela voulait signifier
  • Le champ channels retourne le type de coloration (3 pour RGB, 4 pour CMYK)

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *