Laden Sie zunächst ein PNG -Bild und versuchen Sie es mit Imagerotate () zu drehen. Normalerweise wird der transparente Bereich schwarz ohne zusätzliche Behandlung:
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-comment">// laden PNG Bild</span></span><span>
</span><span><span class="hljs-variable">$imagePath</span></span><span> = </span><span><span class="hljs-string">'image.png'</span></span><span>;
</span><span><span class="hljs-variable">$image</span></span><span> = </span><span><span class="hljs-title function_ invoke__">imagecreatefrompng</span></span><span>(</span><span><span class="hljs-variable">$imagePath</span></span><span>);
</span><span><span class="hljs-comment">// aufstellen PNG Bild为透明背景</span></span><span>
</span><span><span class="hljs-title function_ invoke__">imagealphablending</span></span><span>(</span><span><span class="hljs-variable">$image</span></span><span>, </span><span><span class="hljs-literal">false</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">// 旋转Bild,Der Winkel ist 90 Grad</span></span><span>
</span><span><span class="hljs-variable">$rotatedImage</span></span><span> = </span><span><span class="hljs-title function_ invoke__">imagerotate</span></span><span>(</span><span><span class="hljs-variable">$image</span></span><span>, </span><span><span class="hljs-number">90</span></span><span>, </span><span><span class="hljs-number">0</span></span><span>);
</span><span><span class="hljs-comment">// 输出旋转后的Bild</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">$rotatedImage</span></span><span>);
</span><span><span class="hljs-comment">// 销毁Bild资源</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-title function_ invoke__">imagedestroy</span></span><span>(</span><span><span class="hljs-variable">$rotatedImage</span></span><span>);
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>Der obige Code lädt und rotiert ein PNG -Bild, beachten Sie jedoch, dass der dritte Parameter von Imagerotate () (d. H. Füllfarbe) 0 beträgt, was bedeutet, dass Schwarz den transparenten Teil füllt.
Um die Transparenz aufrechtzuerhalten, besteht der Schlüssel darin, PHP zu fordern, das PNG -Bild transparent zu halten. Bevor die Funktion von Imagerotate () () sicherstellen muss, dass der Bildmischmodus deaktiviert ist und der Alpha -Kanal gespeichert ist:
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-comment">// laden PNG Bild</span></span><span>
</span><span><span class="hljs-variable">$imagePath</span></span><span> = </span><span><span class="hljs-string">'image.png'</span></span><span>;
</span><span><span class="hljs-variable">$image</span></span><span> = </span><span><span class="hljs-title function_ invoke__">imagecreatefrompng</span></span><span>(</span><span><span class="hljs-variable">$imagePath</span></span><span>);
</span><span><span class="hljs-comment">// aufstellen PNG Bild为透明背景</span></span><span>
</span><span><span class="hljs-title function_ invoke__">imagealphablending</span></span><span>(</span><span><span class="hljs-variable">$image</span></span><span>, </span><span><span class="hljs-literal">false</span></span><span>); </span><span><span class="hljs-comment">// Deaktiviert alpha mischen</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">// halten alpha Gang</span></span><span>
</span><span><span class="hljs-comment">// 旋转Bild,Der Winkel ist 90 Grad</span></span><span>
</span><span><span class="hljs-variable">$rotatedImage</span></span><span> = </span><span><span class="hljs-title function_ invoke__">imagerotate</span></span><span>(</span><span><span class="hljs-variable">$image</span></span><span>, </span><span><span class="hljs-number">90</span></span><span>, </span><span><span class="hljs-number">0</span></span><span>);
</span><span><span class="hljs-comment">// 输出旋转后的Bild</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">$rotatedImage</span></span><span>);
</span><span><span class="hljs-comment">// 销毁Bild资源</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-title function_ invoke__">imagedestroy</span></span><span>(</span><span><span class="hljs-variable">$rotatedImage</span></span><span>);
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>birealPhableending ($ image, false); Deaktivieren Sie den Mischmodus des Alpha -Kanals, um sicherzustellen, dass transparente Bereiche während des Betriebs nicht mit anderen Farben gemischt werden.
ImagesAvealpha ($ image, true); Ermöglicht das Speichern des Alpha -Kanals (Transparenzinformationen), sodass der transparente Bereich nicht mit anderen Farben gefüllt wird und das gedrehte Bild weiterhin einen transparenten Hintergrund beibehält.
Wenn Sie beim Drehen des Bildes Farben außerhalb des transparenten Bereichs füllen möchten, anstatt es nur transparent zu halten, können Sie andere Füllfarben in Imagators () einstellen. Stellen Sie beispielsweise die Füllung auf Weiß ein:
<span><span><span class="hljs-variable">$rotatedImage</span></span><span> = </span><span><span class="hljs-title function_ invoke__">imagerotate</span></span><span>(</span><span><span class="hljs-variable">$image</span></span><span>, </span><span><span class="hljs-number">90</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">255</span></span><span>, </span><span><span class="hljs-number">255</span></span><span>, </span><span><span class="hljs-number">127</span></span><span>));
</span></span>Dies füllt den transparenten Bereich in Weiß, nicht schwarz.
Denken Sie bei der Ausgabe des gedrehten Bildes daran, die Funktion imagePng () zu verwenden, da es transparente Teile des PNG -Bildes verarbeiten kann. Sie können das Bild auch in einer Datei speichern:
<span><span><span class="hljs-title function_ invoke__">imagepng</span></span><span>(</span><span><span class="hljs-variable">$rotatedImage</span></span><span>, </span><span><span class="hljs-string">'rotated_image.png'</span></span><span>);
</span></span>