ImageFlip () est une fonction très pratique lors de l'utilisation de PHP pour le traitement d'image. Il peut retourner l'image horizontalement, verticalement ou simultanément. Cependant, différents formats d'image (tels que JPG, PNG, GIF) peuvent-ils être bien compatibles et conserver les fonctionnalités d'origine lors du traitement à l'aide d'imageflip () ? Cet article analysera ce problème en détail et démontrera ses différences de performances dans les trois formats d'image traditionnels via du code réel.
ImageFlip () est une fonction de traitement d'image fournie depuis PHP 5.5.0. La syntaxe de base est la suivante:
bool imageflip ( GdImage $image , int $mode )
où le mode $ peut être l'une des constantes suivantes:
Img_flip_horizontal : flip horizontal
IMG_FLIP_VERTICAL : Flip vertical
Img_flip_both : effectuer simultanément des flips horizontaux et verticaux
JPG est le format d'image le plus courant et est largement utilisé dans les images photo et Web. JPG ne prend pas en charge les canaux transparents, mais la qualité de l'image et le rapport de compression sont excellents.
Compatibilité : entièrement compatible.
Effet de traitement : l'image retourne normalement, mais comme JPG est une compression avec perte, l'image enregistrée peut avoir des changements subtils dans les détails des bords.
$src = 'https://m66.net/images/sample.jpg';
$image = imagecreatefromjpeg($src);
imageflip($image, IMG_FLIP_HORIZONTAL);
imagejpeg($image, 'flipped_sample.jpg');
imagedestroy($image);
PNG prend en charge la compression sans perte et les canaux alpha (transparence) et est souvent utilisé pour les icônes ou les graphiques qui nécessitent un arrière-plan transparent dans les pages Web.
Compatibilité : entièrement compatible.
Effet de traitement : le FLIP est normal et le canal alpha peut être conservé et l'arrière-plan transparent ne sera pas perdu.
$src = 'https://m66.net/images/sample.png';
$image = imagecreatefrompng($src);
imagesavealpha($image, true); // réserve alpha allée
imageflip($image, IMG_FLIP_VERTICAL);
imagepng($image, 'flipped_sample.png');
imagedestroy($image);
GIF prend en charge l'animation et les arrière-plans transparents, mais ne prend en charge que 256 couleurs, adaptées aux icônes simples et aux images de ligne.
Compatibilité : compatible avec les GIF statiques, les GIF animés doivent être gérés spécifiquement.
Effet de traitement : il n'y a pas de problème avec le retournement du GIF statique, mais s'il s'agit d'un GIF animé avec plusieurs images, seule la première trame est inversée et toute la trame doit être traitée avec une bibliothèque externe (comme ImageMagick).
$src = 'https://m66.net/images/sample.gif';
$image = imagecreatefromgif($src);
imageflip($image, IMG_FLIP_BOTH);
imagegif($image, 'flipped_sample.gif');
imagedestroy($image);
Pour les GIF animés, il est recommandé d'utiliser la commande Convert d'imageMagick pour gérer les flips.