Maison > développement back-end > tutoriel php > Traitement d'image PHP (Partie 1) - Bases

Traitement d'image PHP (Partie 1) - Bases

齐天大圣
Libérer: 2020-05-04 14:41:58
original
191 Les gens l'ont consulté

J'ai déjà rencontré un projet qui utilisait la technologie de traitement d'image. Semblable à l'image ci-dessous

Traitement dimage PHP (Partie 1) - Bases

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.

Connaissances de base

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
Copier après la connexion
rrree

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);
Copier après la connexion

Ce code générera une image de fond rouge 100*100

Dessiner l'image

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);
Copier après la connexion

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);
Copier après la connexion

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!

Étiquettes associées:
1
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal