Maison >développement back-end >Problème PHP >Comment sortir des images en PHP ? (Explication détaillée de la légende)

Comment sortir des images en PHP ? (Explication détaillée de la légende)

WBOY
WBOYoriginal
2021-10-19 15:44:368839parcourir

Dans l'article précédent, je vous ai présenté "Comment télécharger des fichiers en PHP ?" Vous comprendrez après l’avoir lu ! 》, qui vous présente en détail comment télécharger des fichiers en PHP. Dans cet article, jetons un coup d'œil aux connaissances pertinentes sur le traitement d'images en PHP. J'espère que cela sera utile à tout le monde !

Comment sortir des images en PHP ? (Explication détaillée de la légende)

Le traitement d'images est quelque chose que nous rencontrons souvent dans le travail PHP. Nous rencontrons de nombreux scénarios dans lesquels nous devons traiter des images, tels que des codes de vérification d'image, des filigranes d'image, etc. En fait, l'objectif de l'apprentissage du traitement d'images est en fait d'apprendre les fonctions du système GD en PHP. Le traitement d'images en PHP nécessite le support de la bibliothèque GD, examinons donc d'abord les connaissances pertinentes sur la bibliothèque GD.

Bibliothèque GD

La bibliothèque GD peut être comprise comme une bibliothèque de fonctions pour créer des images graphiques. La bibliothèque GD est en fait écrite en langage C et peut être utilisée en PHP. être utilisé en Perl Utilisée dans de nombreux langages, la bibliothèque GD fournit de nombreuses interfaces pour le traitement des images. L'utilisation de la bibliothèque GD en PHP permet de dessiner divers graphiques, images, graphiques statistiques et codes de vérification d'image sur la page. à réaliser.

Un exemple est le suivant :

<?php
phpinfo();
?>

Après la saisie, dans le résultat de sortie, si les deux options ci-dessous apparaissent, cela signifie que la machine actuelle prend en charge le traitement d'image via GD :


Comment sortir des images en PHP ? (Explication détaillée de la légende)Ou vous pouvez utiliser :

<?php
    print_r(gd_info());
?>

Exécuter après la saisie. Si le résultat de sortie est tel qu'indiqué dans la figure ci-dessous, cela signifie également que la machine actuelle prend en charge le traitement d'image via GD.


Comment sortir des images en PHP ? (Explication détaillée de la légende)S'il n'est pas installé, vous pouvez également le compléter en supprimant simplement le commentaire précédent de "extension=php_gd2.dll" dans le fichier de configuration php.ini sous le système Windows.

En PHP, l'opération de traitement des images via la bibliothèque GD est généralement divisée en 4 étapes de base :

    Créer un canevas
  • Dessiner l'image
  • Sortir l'image
  • Libérer les ressources
  • Pass Au cours de ces quatre étapes, nous avons terminé le fonctionnement de base de l'image. Voyons comment la faire fonctionner.

Créer une toileTous nos dessins et traitements d'image doivent être effectués sur une image d'arrière-plan, qui est la toile, qui peut être comprise comme une image. Nous avons une zone temporaire dans la mémoire comme toile pour. stockage des informations sur l'image et les opérations d'image ultérieures seront effectuées sur cette zone, qui est le canevas.


imagecreate() et imagecreatetruecolor() sont utilisés pour créer un canevas. Leur format de syntaxe est le suivant :

imagecreate(int $width, int $height)
imagecreatetruecolor(int $width, int $height)

Parmi eux, $width représente la largeur de. le canevas créé et peut également être compris. est la largeur de l'image, $height représente la hauteur du canevas créé, qui est la hauteur de l'image. Les deux fonctions peuvent être utilisées pour créer un canevas, mais la différence est que la. la gamme de couleurs qu’ils peuvent accueillir est différente. imagecreate() imagecreatetruecolor() 用来创建画布,它们的语法格式如下:

<?php
    $img = @imagecreatetruecolor(120, 20) or die(&#39;画布创建失败!&#39;);
?>

其中,$width 表示创建画布的宽度也可以理解为图像的宽度,$height 表示创建画布的高度也就是图像的高度

这两个函数都可以用来创建画布,不过其中不同的是,他们可以容纳的色彩范围不同。

示例如下:

<?php
    $img = @imagecreatetruecolor(120, 20) or die(&#39;画布创建失败!&#39;);
    echo &#39;画布的宽度为:&#39;.imagesx($img).&#39;像素&#39;;
    echo &#39;<br>画布的高度为:&#39;.imagesy($img).&#39;像素&#39;;
?>

由于只是创建了一个画布上面并没有东西,浏览器也不会输出画布,但是可以通过 imagesx() 和 imagesy() 来获取图像的宽和高:

imagegif(resource $image[, string $filename])
imagejpeg(resource $image[, string $filename[, int $quality]])
imagepng(resource $image[, string $filename])

输出结果:

Comment sortir des images en PHP ? (Explication détaillée de la légende)

由此我们便完成了创建一个画布。

除了使用上面两个函数创建画布之外,还可以通过以下方式,通过文件或者url创建图像:

  • imagecreatefromgif()  :  通过 GIF 文件或者 URL 新建一个图像    

  • imagecreatefromjpeg()  :   通过 JPEG 文件或者 UR 新建一个图像    

  • imagecreatefrompng()   :   通过 PNG 文件或者 UR L新建一个图像    

  • imagecreatefromwbmp()   : 通过 WBMP 文件或者URL,新建一个图像    

输出图片

上述示例中,我们已经成功的创建了画布,在PHP中不同格式的图像也需要不同的函数来进行输出,不同的函数如下所示:

  • imagegif()  :  输出一个GIF格式图像到浏览器或文件    

  • imagejpeg()  :  输出一个JPEG格式图像到浏览器或文件    

  • imagepng() 

  • L'exemple est le suivant :

<?php
    header(&#39;Content-type:image/jpeg&#39;);
    $image= imagecreatefrompng(&#39;php.png&#39;);
    imagepng($image);
?>

Puisqu'un canevas vient d'être créé et qu'il n'y a rien dessus, le navigateur n'affichera pas le canevas, mais la largeur et la hauteur de l'image peuvent être obtenues via imagesx() et imagesy() :

imagedestroy(resource $image)
🎜 Résultat de sortie : 🎜🎜🎜Comment sortir des images en PHP ? (Explication détaillée de la légende)🎜🎜Nous avons maintenant terminé la création d'un canevas. 🎜🎜En plus d'utiliser les deux fonctions ci-dessus pour créer un canevas, vous pouvez également créer une image via un fichier ou une URL des manières suivantes : 🎜🎜🎜🎜imagecreatefromgif() : Créer une nouvelle image via un fichier GIF ou une URL 🎜 🎜🎜🎜imagecreatefromjpeg() : Créez une nouvelle image via un fichier JPEG ou une URL 🎜🎜🎜🎜imagecreatefrompng() : Créez une nouvelle image via un fichier PNG ou une URL 🎜🎜🎜🎜 imagecreatefromwbmp() : Créez une nouvelle image via un fichier WBMP ou une URL 🎜🎜🎜🎜🎜🎜Image de sortie 🎜🎜🎜🎜Dans l'exemple ci-dessus, nous avons créé avec succès un canevas dans différents formats en PHP Les images nécessitent également différentes fonctions pour la sortie. Les différentes fonctions sont les suivantes : 🎜🎜🎜🎜imagegif()  : Sortie d'une image au format GIF vers le navigateur ou le fichier 🎜. 🎜🎜🎜imagejpeg ()  : Sortie d'une image au format JPEG vers un navigateur ou un fichier 🎜🎜🎜🎜imagepng()  : Sortie d'une image au format PNG vers un navigateur ou un fichier 🎜 🎜🎜🎜Leur format de syntaxe Comme suit : 🎜🎜
imagegif(resource $image[, string $filename])
imagejpeg(resource $image[, string $filename[, int $quality]])
imagepng(resource $image[, string $filename])

其中,$image为创建的一个图像资源;$filename表示为参数,用来设置文件需要保存的路径。

示例如下:

首先我在根目录中已经保存了一个名为php.png的图像文件

<?php
    header(&#39;Content-type:image/jpeg&#39;);
    $image= imagecreatefrompng(&#39;php.png&#39;);
    imagepng($image);
?>

输出结果:

Comment sortir des images en PHP ? (Explication détaillée de la légende)

通过imagecreatefrompng()函数和imagepng()成功的输出了一个格式为png的图片。

释放图像资源

通过上述示例已经成功的输出了图片,在图片的资源使用完成后,通常需要释放图像处理时所占用的内存,那应该怎样操作呢?

在PHP中我们通过imagedestroy() 函数来释放图像资源,语法格式如下:

imagedestroy(resource $image)

其中$image表示需要释放资源的图像

示例如下:

<?php
    header(&#39;Content-type:image/jpeg&#39;);
    $image= imagecreatefrompng(&#39;php.png&#39;);
    imagepng($image);
    imagedestroy($image);
?>

因为释放图像资源的操作是没有输出内容的,所以就不列出输出结果了。

推荐学习:《PHP视频教程

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn