當前位置: 首頁> 最新文章列表> 如何利用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

  • :要處理的圖像資源。
  • $matrix3 x3 卷積矩陣,用於定義濾鏡效果。
  • $div :所有矩陣值之和,作為歸一化因子。
  • $offset :在計算後增加到每個顏色通道的偏移量,用於調整亮度。

二、浮雕效果實現

浮雕效果通常通過強調圖像邊緣並引入光源方向來模擬立體感。以下是浮雕效果的典型捲積矩陣:

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

三、陰影效果實現

陰影效果常用於增強圖像深度感或突出主體,以下是一種模擬陰影的捲積矩陣(通過模糊並偏移圖像):

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

四、浮雕與陰影的效果對比

"1"cellpadding="8">
特徵浮雕效果陰影效果
主要目的增強圖像的立體邊緣突出對象並模擬光源陰影
常用場景圖標立體化、文字藝術效果UI 按鈕、圖層分離
視覺風格模擬石雕或金屬表面柔和陰影或深色暈染
技術實現不對稱卷積矩陣+ 偏移模糊卷積矩陣+ 局部偏移

五、小結

imageconvolution提供了靈活的圖像處理能力。通過設計不同的捲積矩陣,我們可以實現豐富的視覺特效。浮雕適合需要凸顯結構線條的圖像,而陰影則適用於增強視覺分層和焦點的設計中。在實際應用中,理解和組合這些基礎效果,是實現高級圖像處理的關鍵一步。