현재 위치: > 최신 기사 목록> ImageGetClip을 사용하고 이미지 자르기에서 필터를 적용하는 방법

ImageGetClip을 사용하고 이미지 자르기에서 필터를 적용하는 방법

gitbox 2025-05-26

이미지 처리 중에 자르기 및 필터링은 가장 일반적으로 사용되는 두 가지 기능입니다. 이 둘을 합리적으로 결합하면 풍부한 이미지 특수 효과를 얻거나 이미지 품질을 향상 시키거나 예술적 효과를 만들 수 있습니다. 이 기사에서는 ImageGetClip을 사용하여 이미지 자르기를 달성하고 필터 효과를 향상시키는 방법에 대해 자세히 설명합니다. 이 기사는 PHP 언어를 예로 들어 GD 확장을 결합하여 작동하며 샘플 코드를 통해 특정 사용법을 표시합니다.

1. ImageGetClip의 목적을 이해하십시오

ImageGetClip () 는 PHP의 내장 기능이 아니지만 일반적으로 이미지에서 영역 (즉, 자르기)을 추출하기위한 개발자 정의 기능입니다. 핵심 아이디어는 새로운 이미지 리소스를 만들고 원본 이미지의 지정된 영역을 복사하는 것입니다.

자르기 기능의 간단한 예를 들어 보겠습니다.

 function imagegetclip($srcImage, $x, $y, $width, $height) {
    $clip = imagecreatetruecolor($width, $height);
    imagecopy($clip, $srcImage, 0, 0, $x, $y, $width, $height);
    return $clip;
}

2. 필터 개요

PHP GD는 Blur, Sharpening, Grayscale, Color Trection 등을 포함한 다양한 필터를 적용하기 위해 ImageFilter () 기능을 제공합니다.

 imagefilter($image, IMG_FILTER_GRAYSCALE); // 그레이 스케일로 돌아갑니다

이미지를 자른 후 필터를 적용하거나 필터를 먼저 바르고 자르십시오. 두 사람은 순서가 다르고 효과도 다릅니다.

3. 완료 예 : 자르기 후 필터를 적용합니다

완전한 예제를 사용하여 원본 이미지에서 영역을 자르는 방법을 보여 주고이 영역에 블러 필터를 적용한 다음 저장하겠습니다.

 // 원본 이미지를로드하십시오
$sourcePath = 'https://gitbox.net/images/sample.jpg';
$sourceImage = imagecreatefromjpeg($sourcePath);

// 이미지 영역을 자르십시오(예를 들어(50, 50)수확고300x200영역)
$clip = imagegetclip($sourceImage, 50, 50, 300, 200);

// 가우스 퍼지 필터를 적용하십시오
imagefilter($clip, IMG_FILTER_GAUSSIAN_BLUR);

// 결과를 저장하십시오
imagejpeg($clip, 'clip_blur.jpg');

// 리소스 정리
imagedestroy($sourceImage);
imagedestroy($clip);

4. 필터 및 자르기 순서 비교

필터의 다른 순서와 결과에 대한 자르기의 영향을 이해하기 위해, 우리는 그것을 반대로 할 수 있습니다. 먼저 전체 그림에 필터를 적용한 다음 자르기 :

 $sourceImage = imagecreatefromjpeg('https://gitbox.net/images/sample.jpg');

// 먼저 필터를 적용하십시오
imagefilter($sourceImage, IMG_FILTER_GAUSSIAN_BLUR);

// 再수확고
$clip = imagegetclip($sourceImage, 50, 50, 300, 200);
imagejpeg($clip, 'blur_clip.jpg');

두 결과의 차이점은 다음과 같습니다.

  • 먼저 자르고 필터 : 선택한 영역 만 필터링하십시오.

  • 먼저 필터와 자르기 : 필터 효과가 일관되고 전체 그림에 영향을 미친 다음 영역을 추출합니다.

다른 요구에 따라 다른 주문을 선택할 수 있습니다.

5. 여러 필터와 함께 사용하십시오

필터는 자르기 후 그레이 스케일 적용 및 동시에 샤프닝과 같은 오버레이를 사용할 수 있습니다.

 $clip = imagegetclip($sourceImage, 50, 50, 300, 200);
imagefilter($clip, IMG_FILTER_GRAYSCALE);
imagefilter($clip, IMG_FILTER_CONTRAST, -15);
imagefilter($clip, IMG_FILTER_EDGEDETECT);
imagejpeg($clip, 'clip_effect.jpg');

6. 일반적인 예방 조치

  1. 자원 릴리스 : PHP는 메모리 누출을 피하기 위해 이미지를 처리 ​​할 때 리소스 공개에주의를 기울여야합니다.

  2. 이미지 형식 지원 : 소스 이미지 형식이 현재 GD 확장 (예 : JPEG, PNG 등)을 지원하는지 확인하십시오.

  3. 필터 호환성 : 다른 PHP 버전에서 지원하는 필터 옵션은 다를 수 있습니다.

7. 요약

ImageFilter 의 필터 기능과 결합 된 이미지 자르기에 ImageGetClip을 사용하면 이미지 처리의 다양한 요구를 유연하게 실현할 수 있습니다. 간단한 그레이 스케일 변환에서 복잡한 특수 효과 조합에 이르기까지 강력한 이미지 처리 작업은 몇 가지 기능으로 완료 될 수 있습니다. 처리 순서에 따라 여러 시각 효과가 달성 될 수 있으며 그림의 예술적 표현 능력을 향상시킬 수 있습니다.

이러한 기술을 마스터하는 것은 이미지 처리 개발에 큰 도움이 될 것입니다.