최신 웹 사이트 및 응용 프로그램에서 레트로 스타일의 필터 효과는 종종 독특한 분위기와 감정을 그림에 가져 오는 데 사용됩니다. PHP는 풍부한 이미지 처리 라이브러리를 제공하며, 그 중 ImageConvolution 함수는 매우 강력한 도구이며, 이는 다양한 특수 효과를 달성하기 위해 컨볼 루션 필터를 이미지에 적용 할 수 있습니다. 오늘날 우리는 imageconvolution 함수를 사용하여 레트로 필터 효과를 만드는 방법을 공유 할 것입니다.
Convolutional 필터는 이미지의 각 픽셀에 필터 행렬 (또는 Convolution 커널)을 적용하여 이미지의 색상과 밝기를 변경하는 이미지 처리 기술입니다. 각 픽셀의 출력 값은 주변 픽셀의 가중 평균에 따라 다르며 중량은 필터 행렬의 값에 의해 결정됩니다. 다른 필터 매트릭스를 사용함으로써, 샤프닝, 흐리기, 에지 감지 및 기타 효과의 효과를 달성 할 수있는 반면, 레트로 필터는 특정 행렬을 사용하여 이미지를 향수를 불러 일으키고 따뜻한 스타일로 만듭니다.
PHP에서 imageconvolution은 컨볼 루션 작업을 수행하는 데 사용되는 기능입니다. 기본 사용량은 다음과 같습니다.
<span><span><span class="hljs-keyword">bool</span></span><span> </span><span><span class="hljs-title function_ invoke__">imageconvolution</span></span><span> ( resource </span><span><span class="hljs-variable">$image</span></span><span> , </span><span><span class="hljs-keyword">array</span></span><span> </span><span><span class="hljs-variable">$matrix</span></span><span> , </span><span><span class="hljs-keyword">float</span></span><span> </span><span><span class="hljs-variable">$divisor</span></span><span> , </span><span><span class="hljs-keyword">int</span></span><span> </span><span><span class="hljs-variable">$offset</span></span><span> )
</span></span>
$ 이미지 : 처리 해야하는 이미지 리소스.
$ 매트릭스 : Convolution 커널, 즉 2 차원 어레이는 각 픽셀의 가중 계수를 정의합니다.
$ divisor : 매트릭스의 숫자 값, 일반적으로 행렬 값의 합을 정규화하는 데 사용됩니다.
$ 오프셋 : 밝기를 조정하는 데 사용되는 Convolution 계산 결과에 추가 된 오프셋.
이미지로드 <br> 먼저 필터를 적용하려면 이미지를로드해야합니다. 다른 형식의 이미지는 imageCreatefromjpeg () 및 imageCreateFrommpng () 와 같은 함수를 통해로드 될 수 있습니다.
레트로 필터 매트릭스 정의 <br> 레트로 필터의 핵심은 적절한 컨볼 루션 커널을 사용하는 것입니다. 다음은 이미지의 색조를 약간 따뜻하게 만들고 노란색과 빨간색 성분을 향상시킬 수있는 간단한 레트로 스타일 필터 매트릭스입니다.
<span><span><span class="hljs-variable">$matrix</span></span><span> = [
[</span><span><span class="hljs-number">0.1</span></span><span>, </span><span><span class="hljs-number">0.2</span></span><span>, </span><span><span class="hljs-number">0.1</span></span><span>],
[</span><span><span class="hljs-number">0.2</span></span><span>, </span><span><span class="hljs-number">1.0</span></span><span>, </span><span><span class="hljs-number">0.2</span></span><span>],
[</span><span><span class="hljs-number">0.1</span></span><span>, </span><span><span class="hljs-number">0.2</span></span><span>, </span><span><span class="hljs-number">0.1</span></span><span>]
];
</span></span>
이 매트릭스의 기능은 이미지의 색상을 미묘하게 향상시키고 조정하여 이미지에 부드러운 레트로 효과를 제공하는 것입니다.
컨볼 루션 작업을 적용 <br> imageconvolution 함수를 사용하여 위의 행렬을 이미지에 적용하십시오. 레트로 효과를 달성하기 위해 적절한 제수 및 오프셋 값을 설정합니다.
<span><span><span class="hljs-variable">$image</span></span><span> = </span><span><span class="hljs-title function_ invoke__">imagecreatefromjpeg</span></span><span>(</span><span><span class="hljs-string">'your-image.jpg'</span></span><span>); </span><span><span class="hljs-comment">// 사진로드</span></span><span>
</span><span><span class="hljs-variable">$divisor</span></span><span> = </span><span><span class="hljs-number">1</span></span><span>; </span><span><span class="hljs-comment">// 정규화가 없습니다</span></span><span>
</span><span><span class="hljs-variable">$offset</span></span><span> = </span><span><span class="hljs-number">0</span></span><span>; </span><span><span class="hljs-comment">// 밝기 오프셋이 없습니다</span></span><span>
</span><span><span class="hljs-title function_ invoke__">imageconvolution</span></span><span>(</span><span><span class="hljs-variable">$image</span></span><span>, </span><span><span class="hljs-variable">$matrix</span></span><span>, </span><span><span class="hljs-variable">$divisor</span></span><span>, </span><span><span class="hljs-variable">$offset</span></span><span>); </span><span><span class="hljs-comment">// 컨볼 루션 필터를 적용하십시오</span></span><span>
</span></span>
이미지 <br> 저장 또는 출력 처리가 완료되면 ImageJpeg () , imagePng () 및 기타 함수를 사용하여 처리 된 이미지를 파일로 저장하거나 브라우저에 직접 출력 할 수 있습니다.
<span><span><span class="hljs-title function_ invoke__">header</span></span><span>(</span><span><span class="hljs-string">'Content-Type: image/jpeg'</span></span><span>);
</span><span><span class="hljs-title function_ invoke__">imagejpeg</span></span><span>(</span><span><span class="hljs-variable">$image</span></span><span>); </span><span><span class="hljs-comment">// 처리 된 이미지를 출력하십시오</span></span><span>
</span><span><span class="hljs-title function_ invoke__">imagedestroy</span></span><span>(</span><span><span class="hljs-variable">$image</span></span><span>); </span><span><span class="hljs-comment">// 이미지 자원을 파괴하십시오,무료 메모리</span></span><span>
</span></span>
색조와 채도 조정 <br> 레트로 효과를보다 명확하게하기 위해 컨볼 루션 작업 외에도 톤 조정, 채도 또는 대비와 같은 다른 이미지 처리 기술을 사용할 수도 있습니다. 이러한 조정으로 이미지의 레트로 스타일이 더 두드러집니다.
소음 효과 증가 <br> 레트로 스타일의 이미지에는 종종 이미지가 나이처럼 보이게하는 일부 소음이 수반됩니다. 이러한 효과는 간단한 임의의 노이즈 기능으로 시뮬레이션 할 수 있습니다.
필터를 결합하고 효과가 흐려집니다 <br> 레트로 필터는 블러 효과와 함께 사용하여 오래된 사진의 느낌을 더 시뮬레이션 할 수 있습니다. 예를 들어, Gaussian 블러 필터와 결합 된 ImageFilter () 함수를 사용하면 이미지의 부드러움이 증가 할 수 있습니다.
<span><span><span class="hljs-title function_ invoke__">imagefilter</span></span><span>(</span><span><span class="hljs-variable">$image</span></span><span>, IMG_FILTER_GAUSSIAN_BLUR); </span><span><span class="hljs-comment">// 가우스 블러</span></span><span>
</span></span>
그라디언트 배경을 사용하십시오 <br> 레트로 필터가 배경이있는 이미지에 적용되면 백그라운드에 구배 효과를 추가하여 향수를 더욱 향상시킵니다.
레트로 컬러 매트릭스 <br> RGB 구성 요소의 무게를 조정하여 빨간색과 녹색의 무게를 높이고 파란색을 줄여 레트로 노란색 또는 빨간색 톤을 만들어 색상 바이어스를 변경할 수도 있습니다.
PHP의 imageconvolution 기능을 사용하여 레트로 필터 효과를 생성하면 이미지의 모양을 변경하는 간단하고 효과적인 방법을 제공 할뿐만 아니라 Convolution 커널 및 기타 이미지 처리 기술을 조정하여 더 풍부한 레트로 효과를 가능하게합니다. 이러한 기술을 유연하게 적용하면 웹 페이지 나 응용 프로그램에 더 예술적인 이미지 처리 효과를 추가하여 사용자에게보다 그리운 시각적 경험을 제공 할 수 있습니다.