Position actuelle: Accueil> Derniers articles> Explication détaillée de l'utilisation de base de la fonction Imagecopymerge: comment l'utiliser pour fusionner deux images?

Explication détaillée de l'utilisation de base de la fonction Imagecopymerge: comment l'utiliser pour fusionner deux images?

M66 2025-06-21

En PHP, la fonction ImageCopymerge () est une méthode courante de traitement d'image. Il peut fusionner des parties ou une image dans une autre. L'objectif principal de cette fonction est de fusionner, de superposer, de recadrer et d'autres opérations sur des images, qui sont couramment utilisées dans des scènes telles que faire des filigranes et synthétiser des images. Cet article introduira en détail l'utilisation de base de la fonction ImageCopymerge () et comment l'utiliser pour fusionner deux images.

1. Introduction à l'imagecopymerge () Fonction

Le prototype de la fonction ImageCopymerge () est le suivant:

 bool imagecopymerge(resource $dst_image, resource $src_image, int $dst_x, int $dst_y, int $src_x, int $src_y, int $src_width, int $src_height, int $pct)

Explication des paramètres:

  • $ dst_image : la ressource d'image cible, indiquant l'image dans laquelle vous souhaitez fusionner une autre image.

  • $ src_image : ressource d'image source, indiquant l'image que vous souhaitez fusionner dans l'image cible.

  • $ dst_x, $ dst_y : la position de démarrage de coller l'image source dans l'image cible (c'est-à-dire les coordonnées du coin supérieur gauche).

  • $ src_x, $ src_y : la position de départ dans l'image source (c'est-à-dire les coordonnées du coin supérieur gauche).

  • $ src_width, $ src_height : la largeur et la hauteur de la zone à copier dans l'image source.

  • $ PCT : Le pourcentage de la transparence fusionnée, 0 signifie complètement transparent et 100 signifie complètement opaque.

La fonction de cette fonction est de copier l'image source ( $ src_image ) de la position spécifiée à l'image cible ( $ dst_image ). La zone copiée peut spécifier la largeur et la hauteur de l'image source, tandis que la transparence fusionnée est contrôlée par $ PCT .

2. Étapes de base pour utiliser l'imagecopymerge ()

Ensuite, nous démontrons comment fusionner deux images à l'aide d'imagecopymerge () avec un exemple pratique.

Étape 1: Chargez l'image

Tout d'abord, nous devons charger deux images. PHP fournit plusieurs fonctions pour charger des images dans différents formats, telles que ImageCreateFromJPEG () , ImageCreateFrommpng () , etc. Supposons que nous ayons une image d'arrière-plan et une image de logo qui doit être superposée.

 // Chargez l'image cible(Image de fond)
$bg_image = imagecreatefromjpeg('background.jpg');

// Chargez l'image source(logoimage)
$logo_image = imagecreatefrompng('logo.png');

Étape 2: fusionnez les images à l'aide d' imagecopymerge ()

Supposons que nous voulons fusionner le logo.png en arrière-plan.jpg et nous voulons que le logo soit transparent à 50%. Nous pouvons l'implémenter via le code suivant:

 // Définir l'emplacement de la fusion(目标image像的左上角位置)
$dst_x = 50;
$dst_y = 50;

$src_x = 0;
$src_y = 0;
$src_width = imagesx($logo_image);
$src_height = imagesy($logo_image);

// Définir la transparence50%
$pct = 50;

// 合并image像
imagecopymerge($bg_image, $logo_image, $dst_x, $dst_y, $src_x, $src_y, $src_width, $src_height, $pct);

Étape 3: Sortie de l'image synthétisée

Une fois l'opération de fusion terminée, nous devons sortir l'image du résultat. Vous pouvez utiliser ImageJPEG () (ou toute autre fonction appropriée, en fonction du format d'image) pour enregistrer l'image fusionnée en tant que fichier ou l'afficher directement dans le navigateur.

 // 输出合成后的image像到浏览器
header('Content-Type: image/jpeg');
imagejpeg($bg_image);

// Libérer les ressources
imagedestroy($bg_image);
imagedestroy($logo_image);

Alternativement, vous pouvez enregistrer l'image dans un fichier:

 // 保存合成后的image像到文件
imagejpeg($bg_image, 'result.jpg');

3. Choses à noter

  • Paramètres de transparence : ImageCopymerge () prend en charge les réglages de transparence ( $ PCT Paramètre), mais la transparence n'est valide que pour les images dans les formats PNG et GIF. Si vous fusionnez une image JPEG, l'effet de transparence ne sera pas évident, car JPEG lui-même ne prend pas en charge les canaux transparents.

  • Destruction des ressources : Après le traitement de l'image, n'oubliez pas d'utiliser ImageStroy () pour libérer les ressources d'image pour empêcher la fuite de mémoire.

  • Taille de l'image : La taille de l'image source doit être raisonnablement positionnée en fonction de la taille de l'image cible, sinon l'image peut être étirée ou recadrée. Vous pouvez utiliser imagesxx () et imagesy () pour obtenir la largeur et la hauteur de l'image pour ajuster la position et la taille de l'image source au besoin.

4. Résumé de l'échantillon

Grâce aux étapes ci-dessus, vous pouvez utiliser la fonction ImageCopymerge () pour réaliser la synthèse d'image, la superposition et d'autres effets, ce qui convient particulièrement pour faire des filigranes, des puzzles et d'autres opérations. En définissant rationnellement la position de fusion, la transparence et la taille, vous pouvez gérer de manière flexible différents besoins de synthèse d'image.