현재 위치: > 최신 기사 목록> 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 : 정규화 요인으로서 모든 행렬 값의 합.
  • $ 오프셋 : 계산 후 각 색상 채널에 추가 된 오프셋은 밝기를 조정하는 데 사용됩니다.

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은 유연한 이미지 처리 기능을 제공합니다. 다른 컨볼 루션 매트릭스를 설계함으로써 풍부한 시각적 효과를 얻을 수 있습니다. 엠보싱은 구조 선을 강조 해야하는 이미지에 적합한 반면, 그림자는 시각적 레이어링과 초점을 향상시키는 디자인에 적합합니다. 실제 응용 분야에서 이러한 기본 효과를 이해하고 결합하는 것은 고급 이미지 처리를 달성하는 핵심 단계입니다.