In PHP ist die imageFilt -Funktionsfunktion eine sehr häufige Bildverarbeitungsfunktion zum Zeichnen von Füllrechten auf Bildern. Seine grundlegende Funktion besteht darin, ein Rechteck auf das Bild durch die angegebenen Koordinaten und Farben zu zeichnen und die Farbe auszufüllen. Obwohl die Funktion selbst sehr einfach ist, ist in praktischen Anwendungen eine der Schlüsselfaktoren, die den Bildeffekt beeinflussen, ausgewählt und festlegen.
In diesem Artikel wird untersucht, wie man Farben angemessen ausgewählt und festlegt, wenn die imageFilledRectangle -Funktion verwendet wird, damit das gezogene Rechteck sowohl schön als auch entsprechend den Anforderungen entspricht.
Die Syntax der imageFilldRectangle -Funktion lautet wie folgt:
<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>
$ Bild : Zielbildressource.
$ x1 , $ y1 : Die obere linke Ecke Koordinate des Rechtecks.
$ x2 , $ y2 : Die Koordinaten der unteren rechten Ecke des Rechtecks.
$ Farbe : Die Füllfarbe des Rechtecks.
Diese Funktion zeichnet ein Rechteck, das durch zwei bestimmte Ecken ( $ x1 , $ y1 ) und ( $ x2 , $ y2 ) definiert ist, und füllt das Rechteck mit der angegebenen Farbe. Es ist zu beachten, dass die Farbe durch die Palette des Bildes angegeben wird, sodass wir normalerweise zuerst die Farbe definieren und an die Funktion weitergeben.
Bei der Verwendung der imageFilledRectangle -Funktion gibt es normalerweise zwei Möglichkeiten, die Farbe festzulegen:
Die Funktion "ImageColorallocation" wird verwendet, um einem Bild eine Farbe zuzuweisen. Die Syntax ist wie folgt:
<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>
$ Bild : Bildressource.
$ rot , $ green , $ blau : RGB -Farbwert, mit Werten zwischen 0 und 255.
Um beispielsweise eine rote Füllfarbe für ein Rechteck einzustellen, können Sie dies tun:
<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>
Hier weisen wir eine rote Farbe durch ImageColoralLode zu und geben sie dann als Argument für die imageFilledRectangle -Funktion über, um das Rechteck zu füllen.
Die ImageColorallocatealpha -Funktion ähnelt dem ImageColoralloclocation , unterstützt jedoch Transparenzeinstellungen. Die Syntax ist wie folgt:
<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 : Transparenzwert mit einem Wertebereich von 0 bis 127, 0 bedeutet vollständig undurchsichtig und 127 vollständig transparent.
Wenn Sie das Rechteck eine halbtransparente Füllfarbe einstellen möchten, können Sie dies tun:
<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 Es ist durchscheinend</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>
Transparenz ist sehr nützlich für einige Effekte, die Hintergrundtransparenz erfordern, z. B. Schichten mit transparenten Hintergründen auf Webseiten.
Bei den tatsächlichen Projekten müssen Sie bei der Auswahl der Füllfarbe eines Rechtecks den Kontrast zwischen dem Rechteck und dem Hintergrund berücksichtigen. Wenn die Farbe des Rechtecks stark mit der Hintergrundfarbe kontrastiert wird, kann das Rechteck stärker ausgeprägt sein. Wenn die Hintergrundfarbe dunkler ist, können Sie eine helle rechteckige Füllung auswählen. Wenn der Hintergrund heller ist, können Sie eine dunkle Füllung auswählen. Um die visuellen Effekte zu verbessern, ist es wichtig, einen geeigneten Kontrast zu verwenden.
Einige Benutzer haben möglicherweise Farbblindheit oder schwache Farbprobleme. Daher können Sie beim Entwerfen von Farben Farbblind -freundliche Farbkombinationen wählen. Vermeiden Sie verwirrende Farbkombinationen wie Rot und Grün und wählen Sie leichter unterscheidbare Töne wie Blau und Orange.
In einigen Szenen ist Farbe nicht nur Dekoration, sondern auch eine bestimmte Bedeutung. Zum Beispiel kann Rot eine Warnung oder einen Fehler darstellen, und Grün kann einen Erfolg oder eine Pass darstellen. Bei der Auswahl der Füllfarbe des Rechtecks kann die psychologische Wirkung und die symbolische Bedeutung der Farbe die Erfahrung und das Verständnis des Benutzers verbessern.
Angenommen, wir müssen mehrere Rechtecke verschiedener Farben zeichnen, und die Farben dieser Rechtecke werden nach verschiedenen Zuständen eingestellt. Hier ist ein Beispielcode:
<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">// Definieren Sie die Farbe</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">// Rot</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">// Grün</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">// Blau</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">// Gelb</span></span><span>
</span><span><span class="hljs-comment">// Zeichne ein Rechteck</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">// Rot矩形</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">// Grün矩形</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">// Blau矩形</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">// Gelb矩形</span></span><span>
</span><span><span class="hljs-comment">// Ausgabebild</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">// Zerstöre Bildressourcen</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>
In diesem Beispiel definieren wir vier Farben und verwenden die imageFilledRectangle -Funktion, um vier Rechtecke verschiedener Farben zu zeichnen. Auf diese Weise kann der Benutzer den Fülleffekt jedes Rechtecks deutlich sehen.
Bei der Verwendung von ImageFilledRectangle -Funktion in PHP ist es entscheidend, Farben angemessen auszuwählen und einzustellen. Durch die Verwendung der Funktionen für die ImageColorallocation oder imageColorallocatealpha können Sie die entsprechende Füllfarbe für das Rechteck einstellen. Betrachten Sie bei der Auswahl einer Farbe den Kontrast des Hintergrunds, der Freundlichkeit der Farbe Blindheit und der psychologischen Wirkung der Farbe. Nur die entsprechende Farbkombination kann das gezogene Rechteck mehr auffällig und verständlich machen und gleichzeitig den visuellen Effekt und die Benutzererfahrung des Bildes verbessern.