Aktueller Standort: Startseite> Neueste Artikel> Wie kann ich die ImageConvolution -Funktion verwenden, um Relief- und Schatteneffekte zu erzeugen? Vergleichende Analyse

Wie kann ich die ImageConvolution -Funktion verwenden, um Relief- und Schatteneffekte zu erzeugen? Vergleichende Analyse

M66 2025-07-04

<span><span><span class="hljs-meta"><?php</span></span><span> </span><span><span class="hljs-comment">// 文章内容和程序无关部分</span></span><span> </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"欢迎阅读本文,以下是关于 PHP 图像处理的技术分析内容:"</span></span><span>; </span><span><span class="hljs-meta">?></span></span><span> <hr> <h1>如何利用 imageconvolution 函数制作浮雕和阴影效果?对比分析</h1> <p> 在 PHP 图像处理领域,<code>imageconvolution

  • : Die zu verarbeitende Bildressource.
  • $ matrix : 3 x3 Faltungsmatrix, verwendet, um Filtereffekte zu definieren.
  • $ div : Die Summe aller Matrixwerte als Normalisierungsfaktoren.
  • $ offset : Der Offset für jeden Farbkanal nach der Berechnung hinzugefügt, um die Helligkeit anzupassen.

2. Realisierung der Erleichterungseffekt

Der Reliefeffekt simuliert normalerweise das Gefühl der dreidimensionalen, durch Betonung der Ränder des Bildes und die Einführung der Richtung der Lichtquelle. Hier ist eine typische Faltungsmatrix für Reliefffekte:

 </span><span><span class="hljs-variable">$embossMatrix</span></span><span> = [
    [-</span><span><span class="hljs-number">2</span></span><span>, -</span><span><span class="hljs-number">1</span></span><span>, </span><span><span class="hljs-number">0</span></span><span>],
    [-</span><span><span class="hljs-number">1</span></span><span>,  </span><span><span class="hljs-number">1</span></span><span>, </span><span><span class="hljs-number">1</span></span><span>],
    [ </span><span><span class="hljs-number">0</span></span><span>,  </span><span><span class="hljs-number">1</span></span><span>, </span><span><span class="hljs-number">2</span></span><span>]
];

Diese Matrix simuliert leichte Strahlen, die von der oberen linken Seite beleuchtet werden und ein konkaves und konvexes Gefühl der Erleichterung erzeugt. Implementierungsbeispiel:

 </span><span><span class="hljs-variable">$img</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-title function_ invoke__">imageconvolution</span></span><span>(</span><span><span class="hljs-variable">$img</span></span><span>, </span><span><span class="hljs-variable">$embossMatrix</span></span><span>, </span><span><span class="hljs-number">1</span></span><span>, </span><span><span class="hljs-number">128</span></span><span>);
</span><span><span class="hljs-title function_ invoke__">imagejpeg</span></span><span>(</span><span><span class="hljs-variable">$img</span></span><span>, </span><span><span class="hljs-string">'embossed.jpg'</span></span><span>);
</span><span><span class="hljs-title function_ invoke__">imagedestroy</span></span><span>(</span><span><span class="hljs-variable">$img</span></span><span>);

3.. Schatteneffektrealisierung

Schatteneffekte werden häufig verwendet, um die Tiefe eines Bildes zu verbessern oder das Subjekt hervorzuheben. Hier ist eine Faltungsmatrix, die Schatten simuliert (indem er das Bild verwischt und ausgieß):

 </span><span><span class="hljs-variable">$shadowMatrix</span></span><span> = [
    [</span><span><span class="hljs-number">1</span></span><span>, </span><span><span class="hljs-number">1</span></span><span>, </span><span><span class="hljs-number">1</span></span><span>],
    [</span><span><span class="hljs-number">1</span></span><span>, </span><span><span class="hljs-number">0</span></span><span>, </span><span><span class="hljs-number">1</span></span><span>],
    [</span><span><span class="hljs-number">1</span></span><span>, </span><span><span class="hljs-number">1</span></span><span>, </span><span><span class="hljs-number">1</span></span><span>]
];

Diese Matrix entspricht dem Bild leicht verwischt und wird häufig von Transparenzüberlagerungen oder Schicht-Offsets begleitet, um schattenähnlicher zu sein. Wie man es benutzt, ist wie folgt:

 </span><span><span class="hljs-variable">$img</span></span><span> = </span><span><span class="hljs-title function_ invoke__">imagecreatefrompng</span></span><span>(</span><span><span class="hljs-string">'logo.png'</span></span><span>);
</span><span><span class="hljs-title function_ invoke__">imageconvolution</span></span><span>(</span><span><span class="hljs-variable">$img</span></span><span>, </span><span><span class="hljs-variable">$shadowMatrix</span></span><span>, </span><span><span class="hljs-number">8</span></span><span>, </span><span><span class="hljs-number">0</span></span><span>);
</span><span><span class="hljs-title function_ invoke__">imagepng</span></span><span>(</span><span><span class="hljs-variable">$img</span></span><span>, </span><span><span class="hljs-string">'shadowed.png'</span></span><span>);
</span><span><span class="hljs-title function_ invoke__">imagedestroy</span></span><span>(</span><span><span class="hljs-variable">$img</span></span><span>);

4. Vergleich der Auswirkungen zwischen Relief und Schatten

"1"cellpadding ="8">
Besonderheit Entlastungseffekt Schatteneffekt
Hauptzweck Verbesserte Stereokanten des Bildes Markieren Sie Objekte und simulieren Sie leichte Schatten
Gemeinsame Szenarien Dreidimensionale Ikonen, Text und künstlerische Wirkung UI -Schaltflächen, Schichttrennung
Visueller Stil Simulierte Steinschnitzerei oder Metalloberfläche Weiche Schatten oder dunkle Flecken
Technologie -Implementierung Asymmetrische Faltungsmatrix + Offset Fuzzy Faltungsmatrix + lokaler Offset

5. Zusammenfassung

ImageConvolution bietet flexible Bildverarbeitungsfunktionen. Durch die Gestaltung verschiedener Faltungsmatrizen können wir umfangreiche visuelle Effekte erzielen. Die Prägung eignet sich für Bilder, die strukturelle Linien hervorheben müssen, während Schatten für Designs geeignet sind, die die visuelle Schicht und Fokussierung verbessern. In praktischen Anwendungen ist das Verständnis und Kombinieren dieser grundlegenden Effekte ein zentraler Schritt zur erweiterten Bildverarbeitung.