Dans PHP, la fonction ImageCreateFrommpng () est utilisée pour créer une ressource d'image (ressource d'image GD) à partir d'un fichier d'image de format PNG. Cette fonction est très courante pour le traitement des fichiers d'image, en particulier en ce qui concerne la génération d'images dynamiques, le traitement d'image ou l'édition d'images. Cependant, après que de nombreux développeurs aient utilisé ImageCreateFrommpng () pour créer des ressources d'image, ils ont souvent besoin d'obtenir la largeur et la hauteur de l'image pour un traitement ultérieur.
Cet article expliquera en détail comment lire et traiter la largeur et la hauteur d'une image lors de l'utilisation de la fonction ImageCreateFrommpng () .
PHP fournit deux fonctions: imagesx () et imagesy () pour obtenir la largeur et la hauteur de la ressource d'image. Grâce à ces deux fonctions, nous pouvons obtenir la taille spécifique de l'image après avoir appelé ImageCreateFrommpng () pour créer une ressource d'image.
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-comment">// charger PNG Fichier image</span></span><span>
</span><span><span class="hljs-variable">$image</span></span><span> = </span><span><span class="hljs-title function_ invoke__">imagecreatefrompng</span></span><span>(</span><span><span class="hljs-string">'path/to/your/image.png'</span></span><span>);
</span><span><span class="hljs-comment">// Obtenez la largeur de l'image</span></span><span>
</span><span><span class="hljs-variable">$width</span></span><span> = </span><span><span class="hljs-title function_ invoke__">imagesx</span></span><span>(</span><span><span class="hljs-variable">$image</span></span><span>);
</span><span><span class="hljs-comment">// Obtenez la hauteur de l'image</span></span><span>
</span><span><span class="hljs-variable">$height</span></span><span> = </span><span><span class="hljs-title function_ invoke__">imagesy</span></span><span>(</span><span><span class="hljs-variable">$image</span></span><span>);
</span><span><span class="hljs-comment">// Largeur et hauteur de l'image de sortie</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"La largeur de l'image est: "</span></span><span> . </span><span><span class="hljs-variable">$width</span></span><span> . </span><span><span class="hljs-string">" Pixels\n"</span></span><span>;
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"La hauteur de l'image est: "</span></span><span> . </span><span><span class="hljs-variable">$height</span></span><span> . </span><span><span class="hljs-string">" Pixels\n"</span></span><span>;
</span><span><span class="hljs-comment">// Détruiser les ressources d'image</span></span><span>
</span><span><span class="hljs-title function_ invoke__">imagedestroy</span></span><span>(</span><span><span class="hljs-variable">$image</span></span><span>);
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>
Dans cet exemple, utilisez d'abord la fonction ImageCreateFrommpng () pour charger le fichier image, puis utilisez imagesx () pour obtenir la largeur de l'image, et utilisez ImageSy () pour obtenir la hauteur de l'image. Enfin, sortez la largeur et la hauteur de l'image au navigateur.
En plus d'utiliser imagesxx () et d'images () , nous pouvons également utiliser la fonction getImageSize () pour obtenir la largeur et la hauteur de l'image. getImageSize () renvoie non seulement la taille de l'image, mais renvoie également plus d'informations d'image, y compris le type MIME de l'image, etc. Ceci est très utile pour les scénarios où les informations de fichier doivent être traitées.
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-comment">// utiliser getimagesize() Obtenez la largeur de l'image和高度</span></span><span>
</span><span><span class="hljs-variable">$image_info</span></span><span> = </span><span><span class="hljs-title function_ invoke__">getimagesize</span></span><span>(</span><span><span class="hljs-string">'path/to/your/image.png'</span></span><span>);
</span><span><span class="hljs-comment">// Obtenez la largeur de l'image</span></span><span>
</span><span><span class="hljs-variable">$width</span></span><span> = </span><span><span class="hljs-variable">$image_info</span></span><span>[</span><span><span class="hljs-number">0</span></span><span>];
</span><span><span class="hljs-comment">// Obtenez la hauteur de l'image</span></span><span>
</span><span><span class="hljs-variable">$height</span></span><span> = </span><span><span class="hljs-variable">$image_info</span></span><span>[</span><span><span class="hljs-number">1</span></span><span>];
</span><span><span class="hljs-comment">// Largeur et hauteur de l'image de sortie</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"La largeur de l'image est: "</span></span><span> . </span><span><span class="hljs-variable">$width</span></span><span> . </span><span><span class="hljs-string">" Pixels\n"</span></span><span>;
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"La hauteur de l'image est: "</span></span><span> . </span><span><span class="hljs-variable">$height</span></span><span> . </span><span><span class="hljs-string">" Pixels\n"</span></span><span>;
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>
Ici, getImageSize () renvoie un tableau, le premier élément du tableau ( $ image_info [0] ) est la largeur de l'image et le deuxième élément ( $ image_info [1] ) est la hauteur de l'image.
Dans de nombreux scénarios de traitement d'image, nous devrons peut-être effectuer un traitement en fonction de la largeur et de la hauteur de l'image. Par exemple, ajustez la taille de l'image, recadrez l'image, etc. En obtenant la largeur et la hauteur de l'image, nous pouvons atteindre ces fonctions.
Si nous devons mettre à l'échelle l'image sur la largeur et la hauteur spécifiées, nous pouvons utiliser la fonction ImageCopyResampled () .
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-comment">// chargerFichier image</span></span><span>
</span><span><span class="hljs-variable">$image</span></span><span> = </span><span><span class="hljs-title function_ invoke__">imagecreatefrompng</span></span><span>(</span><span><span class="hljs-string">'path/to/your/image.png'</span></span><span>);
</span><span><span class="hljs-comment">// Obtenez la largeur et la hauteur de l'image d'origine</span></span><span>
</span><span><span class="hljs-variable">$width</span></span><span> = </span><span><span class="hljs-title function_ invoke__">imagesx</span></span><span>(</span><span><span class="hljs-variable">$image</span></span><span>);
</span><span><span class="hljs-variable">$height</span></span><span> = </span><span><span class="hljs-title function_ invoke__">imagesy</span></span><span>(</span><span><span class="hljs-variable">$image</span></span><span>);
</span><span><span class="hljs-comment">// Définir une nouvelle largeur et une nouvelle hauteur</span></span><span>
</span><span><span class="hljs-variable">$new_width</span></span><span> = </span><span><span class="hljs-number">200</span></span><span>;
</span><span><span class="hljs-variable">$new_height</span></span><span> = </span><span><span class="hljs-number">150</span></span><span>;
</span><span><span class="hljs-comment">// Créer une nouvelle image vierge</span></span><span>
</span><span><span class="hljs-variable">$new_image</span></span><span> = </span><span><span class="hljs-title function_ invoke__">imagecreatetruecolor</span></span><span>(</span><span><span class="hljs-variable">$new_width</span></span><span>, </span><span><span class="hljs-variable">$new_height</span></span><span>);
</span><span><span class="hljs-comment">// utiliser imagecopyresampled() Image de mise à l'échelle</span></span><span>
</span><span><span class="hljs-title function_ invoke__">imagecopyresampled</span></span><span>(</span><span><span class="hljs-variable">$new_image</span></span><span>, </span><span><span class="hljs-variable">$image</span></span><span>, </span><span><span class="hljs-number">0</span></span><span>, </span><span><span class="hljs-number">0</span></span><span>, </span><span><span class="hljs-number">0</span></span><span>, </span><span><span class="hljs-number">0</span></span><span>, </span><span><span class="hljs-variable">$new_width</span></span><span>, </span><span><span class="hljs-variable">$new_height</span></span><span>, </span><span><span class="hljs-variable">$width</span></span><span>, </span><span><span class="hljs-variable">$height</span></span><span>);
</span><span><span class="hljs-comment">// Sortir l'image zoomée</span></span><span>
</span><span><span class="hljs-title function_ invoke__">header</span></span><span>(</span><span><span class="hljs-string">'Content-Type: image/png'</span></span><span>);
</span><span><span class="hljs-title function_ invoke__">imagepng</span></span><span>(</span><span><span class="hljs-variable">$new_image</span></span><span>);
</span><span><span class="hljs-comment">// Détruiser les ressources d'image</span></span><span>
</span><span><span class="hljs-title function_ invoke__">imagedestroy</span></span><span>(</span><span><span class="hljs-variable">$image</span></span><span>);
</span><span><span class="hljs-title function_ invoke__">imagedestroy</span></span><span>(</span><span><span class="hljs-variable">$new_image</span></span><span>);
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>
Dans cet exemple, nous chargeons une image PNG, obtenons sa largeur et sa hauteur, et la réduisons à la taille 200x150 spécifiée à l'aide de la fonction ImageCopyResampled () . Enfin, nous publions l'image à l'échelle via ImagePng () .
Si nous voulons recadrer une pièce à partir de l'image, nous pouvons également effectuer des opérations correspondantes en fonction de la largeur et de la hauteur.
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-comment">// chargerFichier image</span></span><span>
</span><span><span class="hljs-variable">$image</span></span><span> = </span><span><span class="hljs-title function_ invoke__">imagecreatefrompng</span></span><span>(</span><span><span class="hljs-string">'path/to/your/image.png'</span></span><span>);
</span><span><span class="hljs-comment">// Obtenez la largeur de l'image和高度</span></span><span>
</span><span><span class="hljs-variable">$width</span></span><span> = </span><span><span class="hljs-title function_ invoke__">imagesx</span></span><span>(</span><span><span class="hljs-variable">$image</span></span><span>);
</span><span><span class="hljs-variable">$height</span></span><span> = </span><span><span class="hljs-title function_ invoke__">imagesy</span></span><span>(</span><span><span class="hljs-variable">$image</span></span><span>);
</span><span><span class="hljs-comment">// Définir les coordonnées et les dimensions de la zone de culture</span></span><span>
</span><span><span class="hljs-variable">$x</span></span><span> = </span><span><span class="hljs-number">50</span></span><span>; </span><span><span class="hljs-comment">// Axe horizontal de départ</span></span><span>
</span><span><span class="hljs-variable">$y</span></span><span> = </span><span><span class="hljs-number">50</span></span><span>; </span><span><span class="hljs-comment">// Démarrage des coordonnées verticales</span></span><span>
</span><span><span class="hljs-variable">$crop_width</span></span><span> = </span><span><span class="hljs-number">100</span></span><span>;
</span><span><span class="hljs-variable">$crop_height</span></span><span> = </span><span><span class="hljs-number">100</span></span><span>;
</span><span><span class="hljs-comment">// Créer une nouvelle image vierge</span></span><span>
</span><span><span class="hljs-variable">$cropped_image</span></span><span> = </span><span><span class="hljs-title function_ invoke__">imagecreatetruecolor</span></span><span>(</span><span><span class="hljs-variable">$crop_width</span></span><span>, </span><span><span class="hljs-variable">$crop_height</span></span><span>);
</span><span><span class="hljs-comment">// utiliser imagecopy() Effectuer la coupe</span></span><span>
</span><span><span class="hljs-title function_ invoke__">imagecopy</span></span><span>(</span><span><span class="hljs-variable">$cropped_image</span></span><span>, </span><span><span class="hljs-variable">$image</span></span><span>, </span><span><span class="hljs-number">0</span></span><span>, </span><span><span class="hljs-number">0</span></span><span>, </span><span><span class="hljs-variable">$x</span></span><span>, </span><span><span class="hljs-variable">$y</span></span><span>, </span><span><span class="hljs-variable">$crop_width</span></span><span>, </span><span><span class="hljs-variable">$crop_height</span></span><span>);
</span><span><span class="hljs-comment">// Image recadrée de sortie</span></span><span>
</span><span><span class="hljs-title function_ invoke__">header</span></span><span>(</span><span><span class="hljs-string">'Content-Type: image/png'</span></span><span>);
</span><span><span class="hljs-title function_ invoke__">imagepng</span></span><span>(</span><span><span class="hljs-variable">$cropped_image</span></span><span>);
</span><span><span class="hljs-comment">// Détruiser les ressources d'image</span></span><span>
</span><span><span class="hljs-title function_ invoke__">imagedestroy</span></span><span>(</span><span><span class="hljs-variable">$image</span></span><span>);
</span><span><span class="hljs-title function_ invoke__">imagedestroy</span></span><span>(</span><span><span class="hljs-variable">$cropped_image</span></span><span>);
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>
Dans cet exemple, nous avons recadré la zone à partir de l'image avec une taille de 100x100 à partir des coordonnées (50, 50) , et avons sorti l'image recadrée.
Après avoir chargé un fichier image à l'aide d' imageRereateFrommpng () , l'obtention de la largeur et de la hauteur de l'image est une exigence de base dans le traitement d'image. Nous pouvons obtenir directement la largeur et la hauteur de l'image via les fonctions imagesx () et images () , ou utiliser getImageSize () pour obtenir plus d'informations sur l'image. Dans les applications pratiques du traitement d'image, la largeur et les valeurs de hauteur sont souvent utilisées pour ajuster la taille, les images de recadrage et d'autres opérations pour atteindre l'effet souhaité.
Ce qui précède est les méthodes et techniques de base pour la largeur et la hauteur de lecture lors du traitement des images PNG. Après avoir compris ces fonctions, vous pouvez mieux effectuer un traitement d'image dans PHP.