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

PHP imagecropauto() 함수로 이미지 자동 크롭하기 – 사용법과 예제

imagecropauto() 함수란?

imagecropauto()는 PHP에 내장된 함수로, 제공되는 여러 크롭 모드 중 하나를 선택하여 이미지를 자동으로 잘라내는(크롭하는) 기능을 수행합니다.

문법

resource imagecropauto(resource $image, int $mode, float $threshold, int $color)

매개변수

imagecropauto() 함수는 $image, $mode, $threshold, $color 네 가지 매개변수를 받습니다.

  • $image – 잘라낼 대상이 되는 이미지 리소스를 지정합니다.

  • $mode – 선택적 매개변수로, 크롭 모드에 해당하는 정숫값을 지정합니다. 사용 가능한 크롭 모드는 다음과 같습니다.

    • IMG_CROP_DEFAULT – IMG_CROP_TRANSPARENT 모드와 동일하게 동작합니다.

    • IMG_CROP_TRANSPARENT – 투명한 배경 영역을 잘라냅니다.

    • IMG_CROP_BLACK – 검은색 배경 영역을 잘라냅니다.

    • IMG_CROP_WHITE – 흰색 배경 영역을 잘라냅니다.

    • IMG_CROP_SIDES – 이미지의 네 모서리 픽셀을 분석하여 잘라낼 배경을 자동으로 감지합니다.

    • IMG_CROP_THRESHOLD – 지정된 임계값(threshold)과 색상을 기준으로 이미지를 잘라냅니다.

  • $threshold – 선택적 매개변수로, 이미지 색상과 잘라낼 기준 색상을 비교할 때 적용할 허용 오차(%)를 지정합니다.

  • $color – 선택적 매개변수로, RGB(Red, Green, Blue) 색상 값 또는 팔레트 인덱스를 지정합니다.

반환 값

imagecropauto()는 성공 시 잘라낸 이미지 리소스를 반환하고, 실패 시 false를 반환합니다. 또한 이미지 전체가 크롭 대상에 해당하는 경우에도 false를 반환합니다.

예제 1

<?php
    // 로컬 드라이브 폴더에서 이미지 불러오기
    $img = imagecreatefromjpeg('C:\xampp\htdocs\Images\img33.jpg');

    // 이미지의 여분의 흰색 영역 잘라내기
    $cropped = imagecropauto($img, IMG_CROP_WHITE);

    // 결과 이미지 출력
    header('Content-type: image/gif');
    imagepng($cropped);
?>

실행 결과

IMG_CROP_WHITE 모드 적용 전 – 이미지 주변에 흰색 여백이 있는 상태:

PHP imagecropauto() 함수로 이미지 자동 크롭하기 – 사용법과 예제

IMG_CROP_WHITE 모드 적용 후 – 이미지 측면의 흰색 영역이 잘려나간 상태:

PHP imagecropauto() 함수로 이미지 자동 크롭하기 – 사용법과 예제

참고 사항

위 예제 외에도 다양한 모드를 상황에 맞게 활용할 수 있습니다. 예를 들어 IMG_CROP_BLACK 모드를 사용하면 이미지에서 검은색 배경 부분을 잘라낼 수 있으며, 배경색이 일정하지 않은 이미지에는 IMG_CROP_THRESHOLD 모드와 임계값 조합이 효과적입니다.