Maison  >  Article  >  développement back-end  >  Introduction à l'utilisation des fonctions de traitement des effets d'image PHP

Introduction à l'utilisation des fonctions de traitement des effets d'image PHP

PHPz
PHPzoriginal
2023-06-15 20:48:331122parcourir

PHP, en tant que langage de script, dispose d'une riche bibliothèque de fonctions de traitement d'image, qui peuvent facilement effectuer diverses opérations de traitement sur les images, telles que la mise à l'échelle, la découpe, le filigrane, les filtres, etc., et prend en charge les images dans différents formats.

Dans cet article, nous présenterons les fonctions de traitement d'image couramment utilisées en PHP et fournirons des scénarios d'application pratiques et des exemples de codes.

1. Zoom et recadrage

Le zoom et le recadrage sont des opérations courantes pour le traitement des images. Ci-dessous, nous présenterons en détail les fonctions de traitement d'image PHP correspondantes.

  1. Scale

imagecopyresized() est la fonction de mise à l'échelle la plus couramment utilisée en PHP, qui peut modifier la taille d'une image tout en conservant les proportions de l'image d'origine.

La syntaxe de cette fonction est la suivante :

bool imagecopyresized ( ressource $dst_image , ressource $src_image , int $dst_x , int $dst_y , int $src_x , int $src_y , int $dst_w , int $dst_h , int $ src_w , int $ src_h )

Explication du paramètre :

  • $dst_image est la ressource d'image cible ;
  • $src_image est la ressource d'image source
  • $dst_x et $dst_y sont les positions de coordonnées du coin supérieur gauche du ; ressource d'image cible ;
  • $src_x et $src_y sont la position des coordonnées du coin supérieur gauche de la ressource d'image source ;
  • $dst_w et $dst_h sont la largeur et la hauteur de l'image cible ; sont la largeur et la hauteur de l'image source.
  • Ce qui suit est un exemple de code pour mettre à l'échelle des images :

$src_image = imagecreatefrompng('origin.png');

$dst_image = imagecreatetruecolor(300, 300);
$src_w = imagesx($ src_image );//Obtenir la largeur de l'image source
$src_h = imagesy($src_image);//Obtenir la hauteur de l'image source
$dst_w = 300;
$dst_h = 300;
imagecopyresized($dst_image, $src_image, 0, 0, 0 , 0, $dst_w, $dst_h, $src_w, $src_h);
imagepng($dst_image, 'resize.png');
imagedestroy($src_image);
imagedestroy($dst_image);
?>

Cropping
  1. imagecopyresampled() est une fonction utilisée pour le recadrage en PHP. Elle a une fonction similaire à imagecopyresized(), mais peut obtenir des effets de mise à l'échelle de meilleure qualité.

La syntaxe de cette fonction est la suivante :

bool imagecopyresampled ( ressource $dst_image , ressource $src_image , int $dst_x , int $dst_y , int $src_x , int $src_y , int $dst_w , int $dst_h , int $ src_w , int $ src_h )

L'explication des paramètres est la même que celle de imagecopyresized().

Voici un exemple de code pour recadrer une image :

$src_image = imagecreatefrompng('origin.png');

$dst_image = imagecreatetruecolor(200, 200);
$src_w = imagesx($ src_image );//Obtenir la largeur de l'image source
$src_h = imagesy($src_image);//Obtenir la hauteur de l'image source
$dst_w = 200;
$dst_h = 200;
$x = 0;
$y = 0;
$src_x = ($src_w-$dst_w)/2;
$src_y = ($src_h-$dst_h)/2;
imagecopyresampled($dst_image, $src_image, $x, $y, $src_x, $src_y, $ dst_w , $dst_h, $dst_w, $dst_h);
imagepng($dst_image, 'crop.png');
imagedestroy($src_image);
imagedestroy($dst_image);
?>

2. Filigrane

Droite L'ajout de filigranes aux images est un scénario souvent impliqué dans des applications pratiques, et PHP fournit également le support des fonctions correspondantes. La fonction

imagecopy() peut être utilisée pour superposer une image sur une autre image pour obtenir un effet de filigrane.

La syntaxe de cette fonction est la suivante :

bool imagecopy ( ressource $dst_image , ressource $src_image , int $dst_x , int $dst_y , int $src_x , int $src_y , int $src_w , int $src_h )

Explication du paramètre :

$dst_image est la ressource d'image cible ;
  • $src_image est la ressource d'image source ;
  • $dst_x et $dst_y sont les positions de coordonnées du coin supérieur gauche de la ressource d'image cible ; et $src_y sont le coin supérieur gauche de la ressource image source. La position des coordonnées
  • $src_w et $src_h sont la largeur et la hauteur de la ressource image source.
  • Ce qui suit est un exemple de code avec filigrane :
  • $src_image = imagecreatefrompng('origin.png');

    $watermark_image = imagecreatefrompng('watermark.png');

    $src_w = imagesx ( $src_image);// Obtenez la largeur de l'image source

    $src_h = imagesy($src_image);// Obtenez la hauteur de l'image source
    $watermark_w = imagesx($watermark_image);// Obtenez la largeur du filigrane
    $watermark_h = imagesy( $watermark_image ); // Obtenez la hauteur du filigrane
    $max_width = $src_w - $watermark_w - 10; // La largeur maximale autorisée à la position du filigrane
    $max_height = $src_h - $watermark_h - 10; à la position du filigrane
    $x = rand(10, $max_width); // La coordonnée horizontale de la position du filigrane généré aléatoirement
    $y = rand(10, $max_height); // La coordonnée verticale de la position du filigrane généré aléatoirement
    imagecopy($src_image, $watermark_image, $x , $y, 0, 0, $watermark_w, $watermark_h);
    imagepng($src_image, 'watermarked.png');
    imagedestroy($src_image);
    imagedestroy($ watermark_image);
    ?>

    3. Filtres

    PHP fournit également une variété d'effets de filtres qui peuvent rendre les images plus intéressantes et artistiques. La fonction

    imagefilter() prend en charge une variété d'effets de filtre, tels que l'inversion, les niveaux de gris, le flou, etc. Pour plus de détails, veuillez vous référer à la documentation officielle PHP.

    Ce qui suit est un exemple de code utilisant des effets de filtre :

    $src_image = imagecreatefrompng('origin.png');
    imagefilter($src_image, IMG_FILTER_PIXELATE, 15, true);// Mosaïque
    imagefilter($src_image, IMG_FILTER_CONTRAST, -50);// Réglage du contraste
    imagepng($src_image, 'filter.png');
    imagedestroy($src_image);
    ?>

    Le code ci-dessus réalise l'ajustement de la mosaïque et du contraste d'une image.

    En résumé, PHP fournit un support puissant pour le traitement d'images, et les fonctions sont simples et faciles à utiliser, ce qui peut répondre aux besoins de la plupart des scénarios d'application. Comprendre ces fonctions de traitement d'image couramment utilisées améliorera considérablement l'efficacité du développement d'applications Web.

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