"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Comment convertir PNG en JPG avec PHP tout en préservant la qualité et la transparence ?

Comment convertir PNG en JPG avec PHP tout en préservant la qualité et la transparence ?

Publié le 2024-11-22
Parcourir:944

How to Convert PNG to JPG with PHP While Maintaining Quality and Transparency?

Comment convertir PNG en JPG avec PHP en préservant la qualité

De nombreux sites Web préfèrent les images JPG en raison de leur taille de fichier réduite sans compromettre la qualité visuelle. Si vous disposez d'une collection de fichiers PNG et devez les convertir en JPG à l'aide de PHP, voici un guide complet :

Fonctions et bibliothèques PHP pour la conversion PNG en JPG

PHP propose plusieurs fonctions et bibliothèques qui gèrent efficacement la manipulation d'images.

imagecreatefrompng() : Lit un fichier PNG et crée une image ressource.
imagejpeg() : génère une image JPG à partir d'une ressource d'image.
imagecopy() : copie une partie d'une image sur une autre.
imagedestroy() : libère la mémoire associée à une ressource image.

Code de conversion Extrait

Pour convertir en toute sécurité PNG en JPG avec transparence en blanc, suivez ces étapes :

  1. Chargez l'image PNG à l'aide de imagecreatefrompng().
  2. Créer une image d'arrière-plan en vraies couleurs remplie de blanc à l'aide de imagecreatetruecolor() et imagefill().
  3. Activez la fusion alpha pour préserver la transparence avec imagealphablending().
  4. Copiez l'image PNG sur l'image d'arrière-plan à l'aide de imagecopy().
  5. Détruisez la ressource d'image PNG originale à l'aide de imagedestroy().
  6. Définissez l'image souhaitée qualité (0-100) pour le fichier JPG.
  7. Sortez l'image JPG à l'aide de imagejpeg().
  8. Détruisez la ressource d'image d'arrière-plan à l'aide imagedestroy().
$image = imagecreatefrompng($filePath);
$bg = imagecreatetruecolor(imagesx($image), imagesy($image));
imagefill($bg, 0, 0, imagecolorallocate($bg, 255, 255, 255));
imagealphablending($bg, TRUE);
imagecopy($bg, $image, 0, 0, 0, 0, imagesx($image), imagesy($image));
imagedestroy($image);
$quality = 50; // 0 = worst / smaller file, 100 = better / bigger file
imagejpeg($bg, $filePath . ".jpg", $quality);
imagedestroy($bg);
Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3