<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-comment">// Der Beginn des Artikels:Nichts mit dem Text zu tunPHPCodebeispiel</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Willkommen bei dieser technischen Freigabe zu lesen!<br>"</span></span><span>;
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Dieser Artikel wird sich auf die Erklärung konzentrieren PHP Mitte imagefilltoborder Punkte zu beachten, wenn eine Funktion in einem transparenten Hintergrund gefüllt wird。"</span></span><span>;
</span><span><span class="hljs-meta">?></span></span><span>
<hr>
</span><span><span class="hljs-meta"><?php</span></span><span>
<span class="hljs-comment">/*
* verwenden imagefilltoborder 在透明背景Mitte填充Stunde需要注意von关键问题
*
* PHP von GD 库Mitte,imagefilltoborder Funktion wird verwendet, um mit angegebenen Farben ab dem Startpunkt zu füllen,直ankommen遇ankommen边界颜色为止von区域。
* Aber im Umgang mit transparentem Hintergrund,往往会遇ankommen填充不生效或填充区域异常von问题。
*
* Dieser Artikel wird diese Schlüsselprobleme analysieren,Und eine Lösung geben。
*/</span>
<span class="hljs-comment">/**
* 1. 透明背景von颜色边界判断问题
*
* imagefilltoborder 函数von第三个参数Ja边界颜色(border color)。
* 这个颜色用于确定填充区域von边界。
* Wenn das Bild ein transparenter Hintergrund ist,Die Randfarbe ist oft transparent(alpha Gang),
* Und imagefilltoborder Transparenz wird bei der Beurteilung der Farbe berücksichtigt,
* Verursacht Grenzfarbe und transparente Hintergrundfarbe kann inkonsistent sein,Grenzen nicht korrekt identifizieren。
*
* Lösung:
* - 明确verwendenVöllig transparentvon颜色索引作为边界颜色。
* - Stellen Sie sicher。
*
* Codebeispiel:
*/</span>
</span><span><span class="hljs-variable">$width</span></span><span> = </span><span><span class="hljs-number">200</span></span><span>;
</span><span><span class="hljs-variable">$height</span></span><span> = </span><span><span class="hljs-number">100</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-variable">$width</span></span><span>, </span><span><span class="hljs-variable">$height</span></span><span>);
</span><span><span class="hljs-comment">// Aktivieren alpha Gang支持</span></span><span>
</span><span><span class="hljs-title function_ invoke__">imagesavealpha</span></span><span>(</span><span><span class="hljs-variable">$image</span></span><span>, </span><span><span class="hljs-literal">true</span></span><span>);
</span><span><span class="hljs-comment">// Erstellen Sie eine völlig transparente Farbe</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">0</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">127</span></span><span>);
</span><span><span class="hljs-comment">// Füllen Sie den transparenten Hintergrund</span></span><span>
</span><span><span class="hljs-title function_ invoke__">imagefill</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-variable">$transparent</span></span><span>);
</span><span><span class="hljs-comment">// Erstellen Sie Füllfarbe(Rot)</span></span><span>
</span><span><span class="hljs-variable">$fillColor</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">// verwenden透明颜色作为边界颜色,Aus Koordinaten füllen(10,10)开始von区域</span></span><span>
</span><span><span class="hljs-title function_ invoke__">imagefilltoborder</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-variable">$transparent</span></span><span>, </span><span><span class="hljs-variable">$fillColor</span></span><span>);
</span><span><span class="hljs-comment">// Speichern Sie das Ausgabebild, um sie anzuzeigen</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-title function_ invoke__">imagedestroy</span></span><span>(</span><span><span class="hljs-variable">$image</span></span><span>);
<span class="hljs-comment">/**
* 2. Notiz:图像必须Aktivieren alpha Gang并保持透明色
*
* Wenn nicht gerufen imagesavealpha($image, true),
* Auch wenn das Bild ursprünglich mit transparent gefüllt ist,Auch als undurchsichtiger Hintergrund behandelt,
* Ursachen Füllgrenzerkennungsfehler。
*
* 3. verwenden imagecolorallocatealpha Achten Sie auf Transparenzparameter beim Festlegen transparenter Farben
*
* Transparenzbereich ist 0(undurchsichtig)ankommen 127(Völlig transparent),
* 需要确保边界颜色von alpha Der Wert stimmt streng mit der Hintergrundtransparenz überein,Andernfalls schlägt das Urteil fehl。
*
* 4. 边界颜色与起始点颜色von关系
*
* imagefilltoborder Ja“Füllen Sie vom Ausgangspunkt aus,直ankommen遇ankommen边界颜色为止”,
* Wenn die Farbe des Startpunkts und die Grenzfarbe gleich sind,Füllung wird nicht passieren。
* Daher ist es notwendig, sicherzustellen, dass die Farbe des Ausgangspunkts und der Grenzfarbe unterschiedlich sind。
*
* 5. Kompatibilität und Alternativen
*
* GD Die Bibliothek hat Einschränkungen bei der transparenten Verarbeitung,Wenn eine komplexe Bildverarbeitung erforderlich ist,
* 可考虑verwenden Imagick 等更强大von库。
*
* Zusammenfassen:
* 在透明背景Mitteverwenden imagefilltoborder Stunde,关键Ja要正确创建透明边界颜色,
* 并Aktivieren alpha Gang保存,Stellen Sie sicher, dass die Randfarbe streng mit der transparenten Hintergrundfarbe übereinstimmt。
*/</span>
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>