En PHP, la fonction ImageFilDrectangle est une fonction de traitement d'image très courante pour dessiner des rectangles de remplissage sur les images. Sa fonction de base est de dessiner un rectangle sur l'image par les coordonnées et les couleurs données et de remplir la couleur. Bien que la fonction elle-même soit très simple, dans les applications pratiques, comment sélectionner et définir la couleur du rectangle est l'un des facteurs clés affectant l'effet d'image.
Cet article explorera comment sélectionner et définir raisonnablement des couleurs lors de l'utilisation de la fonction ImageFildRectangle afin que le rectangle dessiné soit à la fois beau et conforme aux besoins.
La syntaxe de la fonction ImageFilleDrectangle est la suivante:
<span><span><span class="hljs-keyword">bool</span></span><span> </span><span><span class="hljs-title function_ invoke__">imagefilledrectangle</span></span><span> ( resource </span><span><span class="hljs-variable">$image</span></span><span> , </span><span><span class="hljs-keyword">int</span></span><span> </span><span><span class="hljs-variable">$x1</span></span><span> , </span><span><span class="hljs-keyword">int</span></span><span> </span><span><span class="hljs-variable">$y1</span></span><span> , </span><span><span class="hljs-keyword">int</span></span><span> </span><span><span class="hljs-variable">$x2</span></span><span> , </span><span><span class="hljs-keyword">int</span></span><span> </span><span><span class="hljs-variable">$y2</span></span><span> , </span><span><span class="hljs-keyword">int</span></span><span> </span><span><span class="hljs-variable">$color</span></span><span> )
</span></span>
$ Image : Ressource d'image cible.
X1 $ , $ Y1 : la coordonnée du coin supérieur gauche du rectangle.
X2 $ , $ Y2 : les coordonnées du coin inférieur droit du rectangle.
$ couleur : la couleur de remplissage du rectangle.
Cette fonction dessine un rectangle défini par deux coins spécifiés ( $ x1 , $ y1 ) et ( $ x2 , $ y2 ) et remplit le rectangle de la couleur spécifiée. Il convient de noter que la couleur est spécifiée via la palette de l'image, nous définissons donc généralement la couleur en premier et la transmet à la fonction.
Lorsque vous utilisez la fonction ImageFilDrectangle , il existe généralement deux façons de définir la couleur:
La fonction ImageColorAllocate est utilisée pour attribuer une couleur à une image. La syntaxe est la suivante:
<span><span><span class="hljs-keyword">int</span></span><span> </span><span><span class="hljs-title function_ invoke__">imagecolorallocate</span></span><span> ( resource </span><span><span class="hljs-variable">$image</span></span><span> , </span><span><span class="hljs-keyword">int</span></span><span> </span><span><span class="hljs-variable">$red</span></span><span> , </span><span><span class="hljs-keyword">int</span></span><span> </span><span><span class="hljs-variable">$green</span></span><span> , </span><span><span class="hljs-keyword">int</span></span><span> </span><span><span class="hljs-variable">$blue</span></span><span> )
</span></span>
$ Image : Ressource d'image.
$ rouge , $ vert , $ bleu : valeur de couleur RVB, avec des valeurs allant de 0 à 255.
Par exemple, pour définir une couleur de remplissage rouge pour un rectangle, vous pouvez le faire:
<span><span><span class="hljs-variable">$image</span></span><span> = </span><span><span class="hljs-title function_ invoke__">imagecreatetruecolor</span></span><span>(</span><span><span class="hljs-number">200</span></span><span>, </span><span><span class="hljs-number">200</span></span><span>);
</span><span><span class="hljs-variable">$red</span></span><span> = </span><span><span class="hljs-title function_ invoke__">imagecolorallocate</span></span><span>(</span><span><span class="hljs-variable">$image</span></span><span>, </span><span><span class="hljs-number">255</span></span><span>, </span><span><span class="hljs-number">0</span></span><span>, </span><span><span class="hljs-number">0</span></span><span>);
</span><span><span class="hljs-title function_ invoke__">imagefilledrectangle</span></span><span>(</span><span><span class="hljs-variable">$image</span></span><span>, </span><span><span class="hljs-number">10</span></span><span>, </span><span><span class="hljs-number">10</span></span><span>, </span><span><span class="hljs-number">190</span></span><span>, </span><span><span class="hljs-number">190</span></span><span>, </span><span><span class="hljs-variable">$red</span></span><span>);
</span></span>
Ici, nous attribuons une couleur rouge via ImageColorAllocate , puis la passons comme argument à la fonction ImageFildRectangle , remplissant le rectangle.
La fonction ImageColorAllocatEalpha est similaire à ImageColorAllocate , mais elle prend en charge les paramètres de transparence. La syntaxe est la suivante:
<span><span><span class="hljs-keyword">int</span></span><span> </span><span><span class="hljs-title function_ invoke__">imagecolorallocatealpha</span></span><span> ( resource </span><span><span class="hljs-variable">$image</span></span><span> , </span><span><span class="hljs-keyword">int</span></span><span> </span><span><span class="hljs-variable">$red</span></span><span> , </span><span><span class="hljs-keyword">int</span></span><span> </span><span><span class="hljs-variable">$green</span></span><span> , </span><span><span class="hljs-keyword">int</span></span><span> </span><span><span class="hljs-variable">$blue</span></span><span> , </span><span><span class="hljs-keyword">int</span></span><span> </span><span><span class="hljs-variable">$alpha</span></span><span> )
</span></span>
$ alpha : valeur de transparence, avec une plage de valeur de 0 à 127, 0 signifie complètement opaque et 127 signifie complètement transparent.
Si vous souhaitez définir une couleur de remplissage semi-transparente au rectangle, vous pouvez le faire:
<span><span><span class="hljs-variable">$image</span></span><span> = </span><span><span class="hljs-title function_ invoke__">imagecreatetruecolor</span></span><span>(</span><span><span class="hljs-number">200</span></span><span>, </span><span><span class="hljs-number">200</span></span><span>);
</span><span><span class="hljs-variable">$transparent</span></span><span> = </span><span><span class="hljs-title function_ invoke__">imagecolorallocatealpha</span></span><span>(</span><span><span class="hljs-variable">$image</span></span><span>, </span><span><span class="hljs-number">255</span></span><span>, </span><span><span class="hljs-number">0</span></span><span>, </span><span><span class="hljs-number">0</span></span><span>, </span><span><span class="hljs-number">60</span></span><span>); </span><span><span class="hljs-comment">// 60 C'est translucide</span></span><span>
</span><span><span class="hljs-title function_ invoke__">imagefilledrectangle</span></span><span>(</span><span><span class="hljs-variable">$image</span></span><span>, </span><span><span class="hljs-number">10</span></span><span>, </span><span><span class="hljs-number">10</span></span><span>, </span><span><span class="hljs-number">190</span></span><span>, </span><span><span class="hljs-number">190</span></span><span>, </span><span><span class="hljs-variable">$transparent</span></span><span>);
</span></span>
La transparence est très utile pour certains effets qui nécessitent une transparence d'arrière-plan, comme le dessin des couches avec des arrière-plans transparents sur les pages Web.
Dans les projets réels, lors de la sélection de la couleur de remplissage d'un rectangle, vous devez considérer le contraste entre le rectangle et l'arrière-plan. Si la couleur du rectangle contraste fortement avec la couleur d'arrière-plan, le rectangle peut être plus important. Si la couleur d'arrière-plan est plus foncée, vous pouvez choisir un remplissage rectangulaire brillant; Si l'arrière-plan est plus brillant, vous pouvez choisir un remplissage sombre. Pour améliorer les effets visuels, il est crucial d'utiliser un contraste approprié.
Certains utilisateurs peuvent avoir des problèmes de cécité ou de couleurs faibles. Par conséquent, lorsque vous concevez des couleurs, vous pouvez choisir des combinaisons de couleurs aux couleurs des couleurs. Évitez de confondre les combinaisons de couleurs telles que le rouge et le vert, et choisissez des tons plus facilement distincables tels que le bleu et l'orange.
Dans certaines scènes, la couleur n'est pas seulement la décoration, elle a également une signification spécifique. Par exemple, le rouge peut représenter un avertissement ou une erreur, et le vert peut représenter un succès ou un passage. Lors du choix de la couleur de remplissage du rectangle, considérant l'effet psychologique et la signification symbolique de la couleur peut améliorer l'expérience et la compréhension de l'utilisateur.
Supposons que nous devons dessiner plusieurs rectangles de différentes couleurs, et les couleurs de ces rectangles sont définies selon différents états. Voici un exemple de code:
<span><span><span class="hljs-variable">$image</span></span><span> = </span><span><span class="hljs-title function_ invoke__">imagecreatetruecolor</span></span><span>(</span><span><span class="hljs-number">400</span></span><span>, </span><span><span class="hljs-number">400</span></span><span>);
</span><span><span class="hljs-comment">// Définir la couleur</span></span><span>
</span><span><span class="hljs-variable">$red</span></span><span> = </span><span><span class="hljs-title function_ invoke__">imagecolorallocate</span></span><span>(</span><span><span class="hljs-variable">$image</span></span><span>, </span><span><span class="hljs-number">255</span></span><span>, </span><span><span class="hljs-number">0</span></span><span>, </span><span><span class="hljs-number">0</span></span><span>); </span><span><span class="hljs-comment">// rouge</span></span><span>
</span><span><span class="hljs-variable">$green</span></span><span> = </span><span><span class="hljs-title function_ invoke__">imagecolorallocate</span></span><span>(</span><span><span class="hljs-variable">$image</span></span><span>, </span><span><span class="hljs-number">0</span></span><span>, </span><span><span class="hljs-number">255</span></span><span>, </span><span><span class="hljs-number">0</span></span><span>); </span><span><span class="hljs-comment">// vert</span></span><span>
</span><span><span class="hljs-variable">$blue</span></span><span> = </span><span><span class="hljs-title function_ invoke__">imagecolorallocate</span></span><span>(</span><span><span class="hljs-variable">$image</span></span><span>, </span><span><span class="hljs-number">0</span></span><span>, </span><span><span class="hljs-number">0</span></span><span>, </span><span><span class="hljs-number">255</span></span><span>); </span><span><span class="hljs-comment">// bleu</span></span><span>
</span><span><span class="hljs-variable">$yellow</span></span><span> = </span><span><span class="hljs-title function_ invoke__">imagecolorallocate</span></span><span>(</span><span><span class="hljs-variable">$image</span></span><span>, </span><span><span class="hljs-number">255</span></span><span>, </span><span><span class="hljs-number">255</span></span><span>, </span><span><span class="hljs-number">0</span></span><span>); </span><span><span class="hljs-comment">// jaune</span></span><span>
</span><span><span class="hljs-comment">// Dessiner un rectangle</span></span><span>
</span><span><span class="hljs-title function_ invoke__">imagefilledrectangle</span></span><span>(</span><span><span class="hljs-variable">$image</span></span><span>, </span><span><span class="hljs-number">10</span></span><span>, </span><span><span class="hljs-number">10</span></span><span>, </span><span><span class="hljs-number">100</span></span><span>, </span><span><span class="hljs-number">100</span></span><span>, </span><span><span class="hljs-variable">$red</span></span><span>); </span><span><span class="hljs-comment">// rouge矩形</span></span><span>
</span><span><span class="hljs-title function_ invoke__">imagefilledrectangle</span></span><span>(</span><span><span class="hljs-variable">$image</span></span><span>, </span><span><span class="hljs-number">120</span></span><span>, </span><span><span class="hljs-number">10</span></span><span>, </span><span><span class="hljs-number">210</span></span><span>, </span><span><span class="hljs-number">100</span></span><span>, </span><span><span class="hljs-variable">$green</span></span><span>); </span><span><span class="hljs-comment">// vert矩形</span></span><span>
</span><span><span class="hljs-title function_ invoke__">imagefilledrectangle</span></span><span>(</span><span><span class="hljs-variable">$image</span></span><span>, </span><span><span class="hljs-number">10</span></span><span>, </span><span><span class="hljs-number">120</span></span><span>, </span><span><span class="hljs-number">100</span></span><span>, </span><span><span class="hljs-number">210</span></span><span>, </span><span><span class="hljs-variable">$blue</span></span><span>); </span><span><span class="hljs-comment">// bleu矩形</span></span><span>
</span><span><span class="hljs-title function_ invoke__">imagefilledrectangle</span></span><span>(</span><span><span class="hljs-variable">$image</span></span><span>, </span><span><span class="hljs-number">120</span></span><span>, </span><span><span class="hljs-number">120</span></span><span>, </span><span><span class="hljs-number">210</span></span><span>, </span><span><span class="hljs-number">210</span></span><span>, </span><span><span class="hljs-variable">$yellow</span></span><span>); </span><span><span class="hljs-comment">// jaune矩形</span></span><span>
</span><span><span class="hljs-comment">// Image de sortie</span></span><span>
</span><span><span class="hljs-title function_ invoke__">header</span></span><span>(</span><span><span class="hljs-string">'Content-Type: image/png'</span></span><span>);
</span><span><span class="hljs-title function_ invoke__">imagepng</span></span><span>(</span><span><span class="hljs-variable">$image</span></span><span>);
</span><span><span class="hljs-comment">// Détruiser les ressources d'image</span></span><span>
</span><span><span class="hljs-title function_ invoke__">imagedestroy</span></span><span>(</span><span><span class="hljs-variable">$image</span></span><span>);
</span></span>
Dans cet exemple, nous définissons quatre couleurs et utilisons la fonction ImageFilDrectangle pour dessiner quatre rectangles de couleurs différentes. De cette façon, l'utilisateur peut clairement voir l'effet de remplissage de chaque rectangle.
Lors de l'utilisation de la fonction ImageFilDectangle en PHP, il est crucial de sélectionner et de définir raisonnablement les couleurs. En utilisant les fonctions ImageColorAllocate ou ImageColorAllocatealpha , vous pouvez définir la couleur de remplissage appropriée pour le rectangle. Lorsque vous choisissez une couleur, considérez le contraste de l'arrière-plan, la convivialité de la cécité de la couleur et l'effet psychologique de la couleur. Seule la combinaison de couleurs appropriée peut rendre le rectangle dessiné plus accrocheur et compréhensible, tout en améliorant l'effet visuel et l'expérience utilisateur de l'image.