PHP utilise des fonctions de traitement d'image pour dessiner une image

Jetons un coup d'œil à l'image ci-dessous :

7.png

Comment devrions-nous dessiner cette image.

On peut l'analyser selon les étapes :

1. Dessiner l'image

2. Préparer les couleurs nécessaires pour dessiner cette image

3. Remplissez la couleur de fond

4. Tracez deux lignes diagonales

5. Dessinez un cercle dessus

6. Dessinez un rectangle sur le cercle

7. Enregistrez l'image

8. Détruisez les ressources

1. Nous présenterons les étapes basées sur cette image. Analysons les fonctions que nous devons utiliser :

//使用imagecreate函数创建图片,返回资源
$img = imagecreate(500,500);

2. Une fois l'image créée, nous devons ajouter de la couleur à la ressource image, et nous devons utilisez la fonction

$颜色变量 = imagecolorallocate ( resource $图片资源 , int $红 , int $绿 , int $蓝 )

Le rouge, le vert et le bleu sont les trois couleurs de base pour faire fonctionner les images sur les ordinateurs. Ces trois couleurs se combinent pour former toutes les couleurs que l’on voit à l’œil nu.

Donc, imagecolorallocate saisit d'abord la ressource image et exploite cette ressource. Préparez les couleurs pour cet élément d'image.

Cela équivaut à préparer d'abord la toile puis la peinture lors de la peinture.

D'après cette photo, les couleurs que nous devons préparer sont :

1. Vert

2. Bleu

3. Noir

4. Marron

S'il est attribué selon le principe de correspondance des couleurs de l'ordinateur, notre code d'attribution de couleur ci-dessous sera écrit comme suit :

//红
$red = imagecolorallocate($img, 255, 0, 0);
//绿
$green = imagecolorallocate($img, 0, 255, 0);
//蓝
$blue = imagecolorallocate($img, 0, 0, 255);
//棕
$yellow = imagecolorallocate($img, 121, 72, 0);

Quelques-uns qui doivent être utilisés dans ces images La valeur chromatique d'une couleur.

3. Ajoutez de la couleur au fond pour le remplir

imagefilledrectangle ( resource $图片资源 , int $点1x轴, int $点1y轴 , int $点2x轴 , int $点2y轴 , int $color )

Cette fonction nécessite une petite connaissance en géométrie.

1. Un point est composé d'une coordonnée x et d'une coordonnée y

2. Deux points peuvent former une ligne droite

3. Si cette ligne n'est ni horizontale ni verticale les lignes peuvent former un rectangle

comme indiqué ci-dessous :

document_2015-09-19_55fd0d5be46bb.png

Le point 1 et le point 2 peuvent être transformés en rectangle. Par conséquent, nous générons deux points de coordonnées et pouvons remplir le canevas.

Si vous souhaitez remplir tout le canevas :
Le point 1 est l'axe des x et la position 0 du canevas, et l'axe y du point 1 est également la position 0 du canevas.

L'axe x du point 2 est la position 500 de la toile, et l'axe y du point 2 est également la position 500 de la toile.

4. Tracez deux lignes diagonales

Tracez une ligne diagonale, la ligne diagonale est rouge.

Les coordonnées de la première diagonale sont 0 et 0, 500 et 500
Les coordonnées de la deuxième diagonale sont 500 et 0, 0 et 500

imageline($img, 0, 0, 500, 500, $red);
imageline($img, 500, 0, 0, 500, $blue);

5. Dessinez un cercle dessus

bool imagefilledellipse ( resource $图片资源 , int $圆心x , int $圆心y , int $圆的宽 , int $圆的高 , int $圆的颜色 )
imagefilledellipse($img, 250, 250, 200, 200, $yellow);

Manipulez cette ressource et écrivez les coordonnées du centre du cercle. Écrivez ensuite la longueur et la largeur. Si la longueur et la largeur sont cohérentes, c'est un cercle parfait ; si elles ne sont pas cohérentes, c'est une ellipse.

6. Dessinez un rectangle au-dessus du cercle

imagefilledrectangle($img, 200, 200, 300, 300, $blue);

Nous en avons parlé dans celui ci-dessus, nous ne le ferons donc pas entrer dans les détails.

7. Enregistrer les images

bool imagejpeg ( resource $image [, string $filename])

8. Détruire les ressources d'images

imagedestroy($img);

Jetons un coup d'œil au code combiné final :

<?php
//创建图片
$img = imagecreatetruecolor(500, 500);

//分配颜色
$red = imagecolorallocate($img, 255, 0, 0);

$green = imagecolorallocate($img, 0, 255, 0);

$blue = imagecolorallocate($img, 0, 0, 255);

$pur = imagecolorallocate($img, 255, 0, 255);

$yellow = imagecolorallocate($img, 121, 72, 0);


//填充背景
imagefilledrectangle($img, 0, 0, 500, 500, $green);

//画对角线
imageline($img, 0, 0, 500, 500, $red);
imageline($img, 500, 0, 0, 500, $blue);

//画圆
imagefilledellipse($img, 250, 250, 200, 200, $yellow);

//圆中间画矩形
imagefilledrectangle($img, 200, 200, 300, 300, $blue);


//保存图片,图片名为haha.jpg
imagejpeg($img, 'haha.jpg');

//销毁资源
imagedestroy($img);

?>


Formation continue
||
<?php //创建图片 $img = imagecreatetruecolor(500, 500); //分配颜色 $red = imagecolorallocate($img, 255, 0, 0); $green = imagecolorallocate($img, 0, 255, 0); $blue = imagecolorallocate($img, 0, 0, 255); $pur = imagecolorallocate($img, 255, 0, 255); $yellow = imagecolorallocate($img, 121, 72, 0); //填充背景 imagefilledrectangle($img, 0, 0, 500, 500, $green); //画对角线 imageline($img, 0, 0, 500, 500, $red); imageline($img, 500, 0, 0, 500, $blue); //画圆 imagefilledellipse($img, 250, 250, 200, 200, $yellow); //圆中间画矩形 imagefilledrectangle($img, 200, 200, 300, 300, $blue); //保存图片,图片名为haha.jpg imagejpeg($img, 'haha.jpg'); //销毁资源 imagedestroy($img); ?>
soumettreRéinitialiser le code
  • Recommandations de cours
  • Téléchargement du didacticiel