J'ai déjà rencontré un projet qui utilisait la technologie de traitement d'image. Semblable à l'image ci-dessous
L'image est divisée en trois parties, l'image d'arrière-plan, l'image du code QR et le texte sous l'image du code QR. Parmi eux, les images et le texte du code QR sont générés dynamiquement, et les images et les descriptions du texte du code QR sont différentes selon les activités.
Comment remplir cette exigence, nous devons utiliser la technologie de traitement d'image PHP pour y parvenir. Le traitement d'image de PHP est très puissant et peut faire beaucoup de choses. Les plus courants incluent les images de code de vérification, les filigranes d’image, les vignettes, etc.
Nous devons d'abord installer la bibliothèque GD étendue de php. Après l’avoir, vous pouvez passer aux étapes suivantes. Ce qui suit se concentre principalement sur le code. Veuillez vous référer à la documentation pour l'utilisation spécifique de la fonction.
Créer un canevas
La fonction principale imagecreatetruecolor—crée une nouvelle image en vraies couleurs.
imagecreatetruecolor ( int $width , int $height ) : resource
Définir la couleur du canevas
Fonctions principales
imagecolorallocate — Attribuer une couleur à une image
imagefill — remplissage de zone
imagecolorallocate ( ressource $image , int $red , int $green , int $blue ) : int
imagecolorallocate () renvoie un identifiant représentant une couleur composée des composants RVB donnés. le rouge, le vert et le bleu sont respectivement les composants rouge, vert et bleu de la couleur souhaitée. Ces paramètres sont des entiers de 0 à 255 ou des hexadécimaux de 0x00 à 0xFF.
imagecolorallocate() doit être appelé pour créer chaque couleur utilisée dans l'image représentée par image.
imagefill ( resource $image , int $x , int $y , int $color ): bool
imagefill() in image Les coordonnées x, y de l'image (la coin supérieur gauche de l'image Pour 0, 0), utilisez la couleur pour effectuer le remplissage de la zone (c'est-à-dire que les points de la même couleur que les points x, y et les points adjacents seront remplis).
<?php // 创建一个100*100的画布 $im = imagecreatetruecolor(100, 100); // 生成png图片 header("Content-type:image/png"); imagepng($im); imagedestroy($im);
Ce code générera une image de fond rouge 100*100
Dessiner des points et des lignes
Fonctions principales :
imagesetpixel — dessine un seul pixel
imageline — dessine un segment de ligne
imagesetpixel ( resource $image , int $x, int $y , int $color) : bool
imagesetpixel() Utiliser la couleur dans l'image La couleur est aux coordonnées x, y (supérieure coin gauche de l'image Dessinez un point sur 0,0).
imageline (ressource $image, int $x1, int $y1, int $x2, int $y2, int $color): bool
imageline() utilise la couleur dans l'image Draw un segment de ligne allant des coordonnées x1,y1 à x2,y2 (0,0 dans le coin supérieur gauche de l'image).
<?php header("Content-type:image/png"); // 创建一个100*100的画布 $im = imagecreatetruecolor(100, 100); // 设置红包 $color = imagecolorallocate($im, 255, 0, 0); // 填充画布 imagefill($im, 0, 0, $color); // 生成图片 imagepng($im); // 销毁资源 imagedestroy($im);
Dessine un rectangle
<?php $imgHandler = imagecreatetruecolor(100,100); // 填充背景 $bgColor = imagecolorallocate($imgHandler, 200, 30, 40); imagefill($imgHandler,0, 0, $bgColor); // 绘制点 for ($i = 0; $i < 100; $i++) { $pointColor = imagecolorallocate($imgHandler, rand(0,200), rand(0,200), rand(0,200)); imagesetpixel($imgHandler, rand(0, 100), rand(0, 100), $pointColor); } // 绘制线 for ($i = 0; $i < 10; $i++) { $lineColor = imagecolorallocate($imgHandler, rand(100, 225), rand(100, 225), rand(0, 50)); imageline($imgHandler, rand(0, 100), rand(0, 100), rand(0, 100), rand(0, 100), $lineColor); } header("Content-Type:image/png"); imagepng($imgHandler); imagedestroy($imgHandler);
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!