Aktueller Standort: Startseite> Neueste Artikel> Wie benutze ich die ImageAffinematrixget -Funktion, um die Bildrotationstransformation zu implementieren? Schritte und Beispielerklärungen

Wie benutze ich die ImageAffinematrixget -Funktion, um die Bildrotationstransformation zu implementieren? Schritte und Beispielerklärungen

gitbox 2025-07-09

Wie benutze ich die ImageAffinematrixget -Funktion, um die Bildrotationstransformation zu implementieren? Schritte und Beispielerklärungen

Die Bildverarbeitung ist eine häufige Aufgabe in PHP, insbesondere bei der Entwicklung einer Website, der Bearbeitung eines Bildes oder der Generierung von Miniaturansichten. Um die Rotationstransformation von Bildern zu implementieren, bietet PHP einige Funktionen und Tools. Eine der sehr nützlichen Funktionen ist ImageAffinematrixget () , mit dem eine affine Transformationsmatrix erhalten wird. Durch diese Matrix können Sie auf dem Bild drehen, skalieren, schneiden und andere Transformationsvorgänge sind.

1. Was ist eine affine Transformationsmatrix?

Bei der Bildverarbeitung ist die affine Transformation eine Transformation, die parallele Linien unverändert hält. Rotation, Übersetzung, Skalierung und andere Operationen sind alle affine Transformation. Die Affine -Transformationsmatrix ist eine 2x3 -Matrix, die definiert, wie jede Pixelposition in einem Bild transformiert wird. Durch diese Matrix kann PHP komplexe geometrische Transformationen auf Bildern durchführen.

Die Struktur der Affine -Transformationsmatrix lautet wie folgt:

 <span><span>[</span><span><span class="hljs-meta">a, b, c</span></span><span>]
[</span><span><span class="hljs-meta">d, e, f</span></span><span>]
</span></span>
  • a , b , d , e sind Werte, die für Skalierung, Rotation, Scherung usw. verwendet werden.

  • C und F sind die Werte der Translationstransformation.

2. Die Funktion der Funktion von ImageAffinematrixget ()

Die Funktion von ImageAffinematrixget () in PHP wird verwendet, um eine Affine -Transformationsmatrix zu erzeugen, insbesondere die Matrix, die für die Erzeugung von Rotationstransformationen erforderlich ist. Die Syntax dieser Funktion lautet wie folgt:

 <span><span><span class="hljs-title function_ invoke__">imageaffinematrixget</span></span><span>(</span><span><span class="hljs-keyword">string</span></span><span> </span><span><span class="hljs-variable">$type</span></span><span>)
</span></span>

$ type ist eine Zeichenfolge, die die Art der Transformation angibt, die Sie generieren möchten. Gemeinsame Transformationstypen sind:

  • "Drehen" : Erzeugt eine Rotationsmatrix.

  • 'scale' : generiert die Skalierungsmatrix.

  • 'Schere' : Erzeugen Sie eine Schermatrix.

Für Rotationsoperationen verwenden wir normalerweise den "Dreh" -Typ.

3.. So implementieren Sie die Rotationstransformation mithilfe von ImageAffinematrixget ()

Im Folgenden werden wir ein einfaches Beispiel verwenden, um zu demonstrieren, wie die Funktion imageAffinematrixget () verwendet wird, um Bildrotation zu erreichen.

Schritt 1: Erstellen Sie eine Bildressource

Zunächst müssen wir eine Bilddatei laden, die sich in jedem unterstützten Format wie JPEG oder PNG befinden kann.

 <span><span><span class="hljs-meta">&lt;?php</span></span><span>
</span><span><span class="hljs-comment">// Bilder laden</span></span><span>
</span><span><span class="hljs-variable">$image</span></span><span> = </span><span><span class="hljs-title function_ invoke__">imagecreatefromjpeg</span></span><span>(</span><span><span class="hljs-string">'example.jpg'</span></span><span>);
</span><span><span class="hljs-meta">?&gt;</span></span><span>
</span></span>

Schritt 2: Holen Sie sich die Rotationsmatrix

Verwenden Sie die Funktion ImageAffinematrixget (), um die Rotationsmatrix zu erhalten. Angenommen, wir wollen das Bild um 45 Grad drehen.

 <span><span><span class="hljs-meta">&lt;?php</span></span><span>
</span><span><span class="hljs-comment">// Holen Sie sich die Rotationsmatrix</span></span><span>
</span><span><span class="hljs-variable">$matrix</span></span><span> = </span><span><span class="hljs-title function_ invoke__">imageaffinematrixget</span></span><span>(</span><span><span class="hljs-string">'rotate'</span></span><span>, </span><span><span class="hljs-number">45</span></span><span>);
</span><span><span class="hljs-meta">?&gt;</span></span><span>
</span></span>

Schritt 3: Erzeugen Sie eine affine Transformation

Verwenden Sie als Nächstes die Funktion imageAffine (), um die Matrix auf das Bild anzuwenden. Die Funktion ImageAffine () akzeptiert zwei Parameter: Bildressourcen- und Affine -Transformationsmatrix.

 <span><span><span class="hljs-meta">&lt;?php</span></span><span>
</span><span><span class="hljs-comment">// Affine Transformation anwenden</span></span><span>
</span><span><span class="hljs-variable">$transformed_image</span></span><span> = </span><span><span class="hljs-title function_ invoke__">imageaffine</span></span><span>(</span><span><span class="hljs-variable">$image</span></span><span>, </span><span><span class="hljs-variable">$matrix</span></span><span>);
</span><span><span class="hljs-meta">?&gt;</span></span><span>
</span></span>

Schritt 4: Speichern oder ausgeben das transformierte Bild

Jetzt können wir das transformierte Bild in einer Datei speichern oder es direkt in den Browser ausgeben.

 <span><span><span class="hljs-meta">&lt;?php</span></span><span>
</span><span><span class="hljs-comment">// Speichern Sie das transformierte Bild</span></span><span>
</span><span><span class="hljs-title function_ invoke__">imagejpeg</span></span><span>(</span><span><span class="hljs-variable">$transformed_image</span></span><span>, </span><span><span class="hljs-string">'rotated_example.jpg'</span></span><span>);

</span><span><span class="hljs-comment">// Oder direkt zum Browser ausgeben</span></span><span>
</span><span><span class="hljs-title function_ invoke__">header</span></span><span>(</span><span><span class="hljs-string">'Content-Type: image/jpeg'</span></span><span>);
</span><span><span class="hljs-title function_ invoke__">imagejpeg</span></span><span>(</span><span><span class="hljs-variable">$transformed_image</span></span><span>);
</span><span><span class="hljs-meta">?&gt;</span></span><span>
</span></span>

Schritt 5: Kostenlose Ressourcen

Vergessen Sie nach Abschluss der Bildverarbeitung nicht, die Bildressourcen freizugeben.

 <span><span><span class="hljs-meta">&lt;?php</span></span><span>
</span><span><span class="hljs-comment">// Freier Speicher</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">$transformed_image</span></span><span>);
</span><span><span class="hljs-meta">?&gt;</span></span><span>
</span></span>

4. CODE CODE -Beispiel

Hier ist ein vollständiges Code -Beispiel, in dem alle oben genannten Schritte kombiniert werden:

 <span><span><span class="hljs-meta">&lt;?php</span></span><span>
</span><span><span class="hljs-comment">// Bilder laden</span></span><span>
</span><span><span class="hljs-variable">$image</span></span><span> = </span><span><span class="hljs-title function_ invoke__">imagecreatefromjpeg</span></span><span>(</span><span><span class="hljs-string">'example.jpg'</span></span><span>);

</span><span><span class="hljs-comment">// Holen Sie sich die Rotationsmatrix</span></span><span>
</span><span><span class="hljs-variable">$matrix</span></span><span> = </span><span><span class="hljs-title function_ invoke__">imageaffinematrixget</span></span><span>(</span><span><span class="hljs-string">'rotate'</span></span><span>, </span><span><span class="hljs-number">45</span></span><span>);

</span><span><span class="hljs-comment">// Affine Transformation anwenden</span></span><span>
</span><span><span class="hljs-variable">$transformed_image</span></span><span> = </span><span><span class="hljs-title function_ invoke__">imageaffine</span></span><span>(</span><span><span class="hljs-variable">$image</span></span><span>, </span><span><span class="hljs-variable">$matrix</span></span><span>);

</span><span><span class="hljs-comment">// Speichern Sie das transformierte Bild</span></span><span>
</span><span><span class="hljs-title function_ invoke__">imagejpeg</span></span><span>(</span><span><span class="hljs-variable">$transformed_image</span></span><span>, </span><span><span class="hljs-string">'rotated_example.jpg'</span></span><span>);

</span><span><span class="hljs-comment">// Oder direkt zum Browser ausgeben</span></span><span>
</span><span><span class="hljs-title function_ invoke__">header</span></span><span>(</span><span><span class="hljs-string">'Content-Type: image/jpeg'</span></span><span>);
</span><span><span class="hljs-title function_ invoke__">imagejpeg</span></span><span>(</span><span><span class="hljs-variable">$transformed_image</span></span><span>);

</span><span><span class="hljs-comment">// Freier Speicher</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">$transformed_image</span></span><span>);
</span><span><span class="hljs-meta">?&gt;</span></span><span>
</span></span>

5. Schlussfolgerung

Durch die Funktion ImageAffinematrixget () können wir die für die Drehungstransformation erforderliche Matrix leicht erhalten und über die Funktion von ImageAffin () auf das Bild anwenden, um den Rotationsoperat des Bildes zu realisieren. Dieser Ansatz bietet eine flexible und effiziente Möglichkeit, die Bildtransformation zu bewältigen, insbesondere wenn eine feine Steuerung des Bildes erforderlich ist.

Ich hoffe, dieser Artikel kann Ihnen helfen, zu verstehen, wie die Bildverarbeitungsfunktionen von PHP verwendet werden, um Bilder zu drehen und zu transformieren!