Lire et éditer un fichier BMP avec PHP
Article posté le 11-02-2021 dans la catégorie
PHP
Je n'ai pas trouvé de solution facile permettant de lire et de parcourir un fichier BMP avec PHP. Dans le cadre d'un projet personnel, j'ai eu à faire ce type d'opération. Aussi, pour compléter ce manque j'ai développé une petite lib qui fait le travail.
Commençons par l'installation, classique :
composer require ecourtial/php-bmp-parser
Enfin, nous pouvons ouvrir le fichier. Dans l'exemple ci-dessous, je consulte les valeurs RGB et hexadécimale du pixel se trouvant aux coordonnées x = 2, y = 0.
$service = new BmpService();
$image = $service->getImage('myBmpFile.bmp');
echo $image->getPixel(2, 0)->getR();
echo $image->getPixel(2, 0)->getG();
echo $image->getPixel(2, 0)->getB();
echo $image->getPixel(2, 0)->getHex();
Ceci est donc fait avec une librairie compatible PHP 7.4 et 8.0, installable via composer et ne nécessitant pas de librairie tierce.
Néanmoins, vous pouvez aussi éditer le fichier que vous avez ouvert, avec certaines limitations. Vous aurez besoin cette fois d'avoir l'extension gd d'installée. Voici un exemple de modification :
// Je souhaite modifier le fichier ouvert plus haut mais garder l'original. Je change donc le chemin de sortie.
$image->setPath('myNewBmpFile.bmp);
// Changeons la couleur de ce pixel
$image->getPixel(0, 1)->setR(0)->setG(0)->setB(126);
// Agrandissons l'image. Les pixels ajoutés sont de couleur blanche.
$image->setDimensions(3, 4);
// Pour certains de ces nouveaux pixels, définissions une autre couleur.
$image->getPixel(0, 3)->setR(200)->setG(0)->setB(200);
$image->getPixel(1, 3)->setR(0)->setG(0)->setB(255);
// Enregistrons.
$image = $service->update($image);
Et c'est tout. Très basique, mais efficace. Le code source se trouve ici.
Cet article vous a plu? Découvrez d'autres articles