Die Funktion imageCrreatTueColor () wird verwendet, um ein echtes Farbbild zu erstellen. Es gibt eine Bildressource zurück, die Breite und Höhe enthält, die für nachfolgende Bildvorgänge wie Farbfüllung, Zeichnen von Grafiken oder Ausgabe von Bildern verwendet werden kann.
<span><span>resource </span><span><span class="hljs-title function_ invoke__">imagecreatetruecolor</span></span><span>(</span><span><span class="hljs-keyword">int</span></span><span> </span><span><span class="hljs-variable">$width</span></span><span>, </span><span><span class="hljs-keyword">int</span></span><span> </span><span><span class="hljs-variable">$height</span></span><span>);
</span></span>
$ width : Die Breite des Bildes in Pixeln.
$ Höhe : Die Höhe des Bildes in Pixeln.
<span><span><span class="hljs-comment">// Eine Breite von erstellen 200px,Größe ist 100px Wahres Farbbild</span></span><span>
</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">100</span></span><span>);
</span></span>
Die Funktion von ImageColorclosest () findet die engste Farbe in der Palette, die auf dem angegebenen RGB -Wert basiert. Diese Funktion gibt den Farbindexwert in der Palette zurück, die der Zielfarbe am nächsten ist, was besonders nützlich ist, um nicht ausgestattete Farbbilder zu verarbeiten.
<span><span><span class="hljs-keyword">int</span></span><span> </span><span><span class="hljs-title function_ invoke__">imagecolorclosest</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 : Der RGB -Wert der Zielfarbe im Bereich von 0 bis 255.
<span><span><span class="hljs-comment">// Holen Sie sich den nächsten RGB(255, 0, 0) Farbindex(Rot)</span></span><span>
</span><span><span class="hljs-variable">$colorIndex</span></span><span> = </span><span><span class="hljs-title function_ invoke__">imagecolorclosest</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>
Nehmen wir an, wir müssen ein Rechteck auf ein echtes Farbbild zeichnen und sicherstellen, dass die Farbe des Rechtecks in der Bildpalette am nächsten ist.
Verwenden Sie ImageCrreatTueColor (), um ein echtes Farbbild zu erstellen.
Verwenden Sie ImageColorclosest (), um den Farbindex der Palette zu finden, das der Zielfarbe am nächsten liegt.
Verwenden Sie die ImageFilledRectangle () -Funktion, um das Rechteck auf das Bild zu zeichnen, wobei die Füllfarbe bis zum nächstgelegenen Rot ist.
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-comment">// Erstellen a 400x200 Wahres Farbbild</span></span><span>
</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">200</span></span><span>);
</span><span><span class="hljs-comment">// Holen Sie sich den nächsten RGB(255, 0, 0) Farbindex</span></span><span>
</span><span><span class="hljs-variable">$redIndex</span></span><span> = </span><span><span class="hljs-title function_ invoke__">imagecolorclosest</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">// Zeichnen Sie ein Rechteck auf das Bild,填充为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">50</span></span><span>, </span><span><span class="hljs-number">50</span></span><span>, </span><span><span class="hljs-number">350</span></span><span>, </span><span><span class="hljs-number">150</span></span><span>, </span><span><span class="hljs-variable">$redIndex</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><span class="hljs-meta">?></span></span><span>
</span></span>
ImageColorclosest () funktioniert mit Palettenbildern . Wenn das Bild, das Sie mit ImageCrreatTueColor () erstellen, ein echtes Farbbild (24-Bit-Farbe) ist, funktioniert imageColorclosest () möglicherweise nicht wie erwartet, wie es für das Palettenbild ist. Für echte Farbbilder wird empfohlen, imageColoralclocation () oder imageColorallocatealpha () direkt zu verwenden, um Farben zuzuweisen.
In PHP sind echte Farbbilder (erstellt von ImagecrreatTueColor () ) 24-Bit-Farben (d. H. Jedes Pixel wird durch 3 Bytes dargestellt), während Palettenbilder Farbindizes verwenden, um Farben zu speichern.
Durch die Kombination von ImagecrreatTueColor () und imagebildung () können Sie mehr Flexibilität bei der Behandlung von Bildfarben haben, insbesondere wenn Sie Bilder in Palettenbilder umwandeln müssen. ImageColOralCode () und ImageColorallocatealpha () sind jedoch eine bessere Entscheidung, wenn sie sich mit echten Farbbildern befassen. Unabhängig davon, welche Methode verwendet wird, ist das Verständnis der Rolle des Farbmodells und der Funktion des Bildes eine wichtige Grundlage für die Bildverarbeitung.