現在の位置: ホーム> 最新記事一覧> ImageConvolution関数を使用してリリーフとシャドウエフェクトを作成する方法は?比較分析

ImageConvolution関数を使用してリリーフとシャドウエフェクトを作成する方法は?比較分析

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

  • :処理される画像リソース。
  • $マトリックス:フィルター効果を定義するために使用される3 x3畳み込みマトリックス。
  • $ div :正規化係数としてのすべてのマトリックス値の合計。
  • $ offset :輝度を調整するために使用される計算後に各カラーチャネルに追加されたオフセット。

2。救援効果の実現

レリーフ効果は通常、画像のエッジを強調し、光源の方向を導入することにより、3次元の感覚をシミュレートします。これは、リリーフ効果のための典型的な畳み込みマトリックスです。

 </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>]
];

このマトリックスは、左上から照らされる光線をシミュレートし、凹状で凸感の安心感を生み出します。実装例:

 </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。シャドウエフェクト実現

多くの場合、シャドウエフェクトは、画像の深さを強化したり、被験者を強調したりするために使用されます。これは、(画像をぼかしてオフセットすることにより)影をシミュレートする畳み込みマトリックスです。

 </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>]
];

このマトリックスは、画像をわずかにぼやけすることと同等であり、多くの場合、より影のようになるために透明性オーバーレイまたはレイヤーオフセットを伴うことがよくあります。それを使用する方法は次のとおりです。

 </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。救援と影の効果の比較

"1"cellpadding ="8">
特徴救援効果シャドウエフェクト
主な目的拡張画像のステレオエッジオブジェクトを強調表示し、軽い影をシミュレートします
一般的なシナリオ3次元アイコン、テキスト、芸術的効果UIボタン、レイヤー分離
ビジュアルスタイルシミュレートされた石の彫刻または金属表面柔らかい影や暗い汚れ
テクノロジーの実装非対称畳み込みマトリックス +オフセットファジーコンボリューションマトリックス +ローカルオフセット

5。概要

ImageConvolutionは、柔軟な画像処理機能を提供します。さまざまな畳み込みマトリックスを設計することにより、豊富な視覚効果を実現できます。エンボス加工は、構造ラインを強調する必要がある画像に適していますが、影は視覚的なレイヤーとフォーカスを強化するデザインに適しています。実際のアプリケーションでは、これらの基本効果を理解して組み合わせて、高度な画像処理を実現する重要なステップです。