Image de fonctionnement du didacticiel de filigrane d'image de développement PHP
Manipuler les images
<?php
/*打开图片*/
//配置图片路径
$src = "https://img.php.cn/upload/course/000/000/004/581454f755fb1195.jpg";
//获取图片的基本信息
$info=getimagesize($src);
//通过图像的编号来获取图片的类型
$type=image_type_to_extension($info[2],false);
//内存中创建一个和我们图像类型一致的图像
$fun = "imagecreatefrom{$type}";
//把要操作的图片复制到内存中
$image=$fun($src);
/*操作图片*/
//设置水印路径
$image_Mark = "https://img.php.cn/upload/course/000/000/004/5814594e3e7c9278.png";
//获取水印的基本信息
$info2=getimagesize($image_Mark);
//通过水印的图像编号来获取水印的图片类型
$type2=image_type_to_extension($info2[2],false);
//在内存中创建一个和水印图像一致的图像类型
$fun2="imagecreatefrom{$type2}";
//把水印复制到内存中
$water = $fun2($image_Mark);
//合并图片
imagecopymerge($image,$water,60,40,0,0,$info2[0],$info2[1],30);
//销毁水印图片
imagedestroy($water);
?>Explication du code :
getimagesize — Obtenez la taille de l'image
image_type_to_extension-Renvoie le nom du suffixe.
Ensuite, stockez-le dans la mémoire, utilisez la fonction imagecopymerge pour fusionner les images et ajouter des filigranes
imagecopymerge — copiez et fusionnez une partie de l'image
bool imagecopymerge ( resource $dst_im , resource $src_im , int $dst_x , int $dst_y , int $src_x , int $src_y , int $src_w , int $src_h , int $pct )
Démarrez les coordonnées dans l'image src_im de src_x, src_y, la largeur est src_w et la hauteur est src_h et une partie est copiée dans Les coordonnées dans l'image dst_im sont dst_x et à la position de dst_y. Les deux images seront fusionnées sur la base du PCT, qui va de 0 à 100. Quand PCT = 0, ça ne fait rien, quand c'est 100 Cette fonction est exactement la même que imagecopy() pour les images en palette, elle implémente la transparence alpha pour les images en vraies couleurs.


