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

  • :要处理的图像资源。
  • $matrix3x3 卷积矩阵,用于定义滤镜效果。
  • $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 提供了灵活的图像处理能力。通过设计不同的卷积矩阵,我们可以实现丰富的视觉特效。浮雕适合需要凸显结构线条的图像,而阴影则适用于增强视觉分层和焦点的设计中。在实际应用中,理解和组合这些基础效果,是实现高级图像处理的关键一步。