Computer >> 컴퓨터 >  >> 프로그래밍 >> PHP

PHP의 imageconvolution() 함수 – 이미지 컨볼루션 효과 적용하기

PHP의 imageconvolution() 함수는 이미지에 컨볼루션(convolution) 커널을 적용하는 함수입니다. 이 함수를 활용하면 이미지 선명도 향상(샤프닝), 흐림 효과(블러), 엠보싱 등 다양한 이미지 필터 효과를 손쉽게 구현할 수 있습니다.

구문

bool imageconvolution (img, matrix, div, offset)

매개변수

  • img: imagecreatetruecolor() 함수 등으로 생성한 이미지 리소스입니다.

  • matrix: 3x3 크기의 컨볼루션 행렬로, float 값 세 개를 담는 배열 세 개로 이루어진 배열입니다.

  • div: 컨볼루션 연산 결과의 제수(divisor)로, 주로 정규화(normalization) 목적으로 사용됩니다.

  • offset: 색상 오프셋으로, 계산된 색상 값에 추가됩니다.

반환값

imageconvolution() 함수는 성공 시 true를, 실패 시 false를 반환합니다.

예제

다음은 imageconvolution() 함수를 사용한 기본적인 예제입니다.

<?php
   $img = imagecreatefromgif('https://www.tutorialspoint.com/images/html.gif');
   $arr = array(array(2, 0, 1), array(-1, -1, 0), array(0, 0, -1));
   imageconvolution($img, $arr, 1, 127);
   header('Content-Type: image/png');
   imagepng($img, null, 9);
?>

출력 결과

위 코드를 실행하면 아래와 같이 컨볼루션 효과가 적용된 이미지가 출력됩니다.

PHP의 imageconvolution() 함수 – 이미지 컨볼루션 효과 적용하기

다른 매개변수 값을 사용한 예제

이번에는 동일한 이미지에 서로 다른 매개변수 값을 적용해 보겠습니다. 행렬(matrix)과 제수(div), 오프셋(offset) 값이 달라지면 출력되는 이미지 효과도 확연히 달라지는 것을 확인할 수 있습니다.

<?php
   $img = imagecreatefromgif('https://www.tutorialspoint.com/images/html.gif');
   $arr = array(array(3, 2, 1), array(0, 1, 0), array(1, -1, -1));
   imageconvolution($img, $arr, 3, 110);
   header('Content-Type: image/png');
   imagepng($img, null, 9);
?>

출력 결과

위 코드를 실행하면 아래와 같은 결과가 출력됩니다.

PHP의 imageconvolution() 함수 – 이미지 컨볼루션 효과 적용하기