Les bonnes libraries pour manipuler les images en PHP

Le 07/02/2017

Dans Développement

Besoin de manipuler des images en PHP ? Bonne nouvelle ! Le BlogDuWebdesign vous propose une liste de ressources vous permettant de remplir cette tâche de manière efficace sans se prendre la tête avec la syntaxe de GD et Imagemagick !

Image

Image est une toute jeune bibliothèque de manipulation d'images pleine de points positifs.

En plus d'une vitesse de travail plus que raisonnable et une charge serveur tout à fait acceptable, son gros point fort est sa syntaxe très claire et agréable à manipuler, comme vous pouvez le voir dans l'exemple suivant.

Image::load('example.jpg')
    ->sepia()
    ->blur(50)
    ->save();

Les méthodes sont claires et chaînables, ce qui fait que toute personne tombant sur votre code sera capable de le comprendre, même sans connaître la bibliothèque, ce qui est vraiment un bon point. Son gros point "négatif" est évidemment sa jeunesse, et le fait que son futur est imprévisible. À surveiller, donc.

Imageflow

Imageflow est un projet assez particulier dans le sens où il a été Kickstarte il y a quelques mois (à hauteur de 62 000 dollars, tout de même !).

Loin d'être une library permettant de se connecter à GD ou Imagemagick, son objectif est de fournir une library de manipulation d'image adressant la plupart des reproches que l'on fait à Imagemagick. Ce projet couvre donc bien plus de langages que simplement PHP.

Le projet n'est pas vraiment en version finale, et il faut être prudent avant de l'utiliser en production, mais il reste néanmoins particulièrement intéressant sur de très nombreux points (api accessible a travers http et ffi, centré sur un usage "web" et mettant la sécurité en avant, …)

Intervention Image

Intervention image est LA library de cette liste que je vous recommande pour l'instant. Bien que moins intéressante que les deux précédentes en matière de specs et api, elle a l'avantage d'être sur le marché depuis quelques années déjà, et bien soutenue, bien testée, bref on peut lui faire confiance.

Sans être aussi agréable que celle d'image, sa syntaxe est loin d'être insoutenable et reste agréable à utiliser, comme vous pouvez le voir sur l'exemple suivant, et cette ressource possède l'avantage d'avoir une documentation très compréhensible.

// open an image file
$img = Image::make('public/foo.jpg');

// resize image instance
$img->resize(320, 240);

// insert a watermark
$img->insert('public/watermark.png');

// save image in desired format
$img->save('public/bar.jpg');

Zebra image

Zebra est sans aucun doute la library la moins puissante de cette liste, mais elle possède une particularité très intéressante : elle n'est constituée en tout et pour tout d'un seul petit fichier PHP.

Cette library est donc intéressante pour réduire au maximum ses dépendances ou dans un but pédagogique, permettant de fournir un code d'exemple pour travailler avec GD.