현재 위치: > 최신 기사 목록> PHP의 imageCrop 함수를 사용하여 정사각형 이미지를 자르는 방법은 무엇입니까? 단계 및 예제 설명

PHP의 imageCrop 함수를 사용하여 정사각형 이미지를 자르는 방법은 무엇입니까? 단계 및 예제 설명

gitbox 2025-06-09

PHP의 imageCrop 함수를 사용하여 정사각형 이미지를 자르는 방법은 무엇입니까? 단계 및 예제 설명

자르기 이미지는 이미지 처리에 PHP를 사용할 때 일반적인 작업 중 하나입니다. PHP는 이미지를 자르기 위해 ImageCrop 함수를 사용할 수있는 많은 이미지 처리 기능을 제공합니다. 이 기사에서는 ImageCrop 함수를 사용하여 정사각형 이미지를 자르는 방법에 중점을 둘 것입니다. 또한 특정 코드 예제를 통해 전체 프로세스를 시연 할 것입니다.

1. 준비

먼저 ImageCrop이 GD 라이브러리의 기능이므로 서버에 GD 라이브러리가 설치되어 있는지 확인하십시오. GD 라이브러리가 설치되어 있는지 확실하지 않은 경우 다음 명령으로 확인할 수 있습니다.

 php -m | grep gd

출력에 GD가 포함 된 경우 GD 라이브러리가 설치됩니다. 그렇지 않으면 설치하고 활성화해야합니다.

2. 이미지 자원을 얻으십시오

자르기를 시작하기 전에 먼저 이미지를로드해야합니다. 일반적으로 이미지 리소스는 이미지 형식에 따라 imageCreatefromjpeg , imageCreatefrommpng 또는 imageCreateFromGif 와 같은 함수를 통해 얻습니다. 예를 들어 JPEG 이미지를로드하려면 다음 코드를 사용할 수 있습니다.

 $image = imagecreatefromjpeg('your-image.jpg');

이렇게하면 후속 처리 중에 사용할 수있는 이미지 리소스가 반환됩니다.

3. 자른 지역을 계산하십시오

이미지를 사각형으로 자르려면 먼저 정사각형 영역을 계산해야합니다. 우리는 그림의 너비와 높이에 의해 정사각형의 작물 면적을 결정할 수 있습니다. 이미지 너비가 높이보다 크면 이미지 너비의 높이와 동일한 이미지의 일부를 선택하고 그 반대도 마찬가지입니다. 이것은 절단 영역이 정사각형임을 보장합니다.

우리는 다음 코드를 사용하여 자른 영역의 좌표와 치수를 얻을 수 있습니다.

 $width = imagesx($image);  // 이미지의 너비를 얻으십시오
$height = imagesy($image); // 사진의 높이를 얻으십시오

$minDimension = min($width, $height);  // 광장의 측면 길이로 너비와 높이의 작은 하나를 선택하십시오.

// 작물의 시작 좌표를 계산하십시오
$startX = ($width - $minDimension) / 2;
$startY = ($height - $minDimension) / 2;

4. ImageCrop을 사용하여 이미지를 자릅니다

작물 영역의 위치와 크기를 알았으므로 ImageCrop 함수를 클립 할 수 있습니다. imageCrop은 작물 면적의 너비, 시작 좌표 등과 같은 정보를 포함하는 imageCrop 객체가 필요합니다.

imageCrop을 사용하여 이미지를 자르는 방법에 대한 코드는 다음과 같습니다.

 $cropRect = [
    'x' => $startX,
    'y' => $startY,
    'width' => $minDimension,
    'height' => $minDimension
];

$croppedImage = imagecrop($image, $cropRect);

5. 자른 이미지를 출력하십시오

자르기가 완료되면 ImageJPeg (JPEG 형식 이미지의 경우) 또는 ImagePNG (PNG 형식 이미지의 경우)를 통해 자른 이미지를 출력 할 수 있습니다. 이미지를 브라우저에 직접 출력하려면 다음을 수행 할 수 있습니다.

 header('Content-Type: image/jpeg');
imagejpeg($croppedImage);

잘린 이미지를 서버에 저장하려면 파일 경로를 지정할 수 있습니다.

 imagejpeg($croppedImage, 'cropped-image.jpg');

6. 자원 정리

마지막으로 메모리 누출을 방지하기 위해 이미지 리소스를 확보해야합니다.

 imagedestroy($image);
imagedestroy($croppedImage);

완전한 코드 예제

 <?php
// 사진로드
$image = imagecreatefromjpeg('your-image.jpg');

// 이미지의 너비를 얻으십시오和高度
$width = imagesx($image);
$height = imagesy($image);

// 자른 영역의 크기를 계산하십시오
$minDimension = min($width, $height);

// 클리핑 영역의 시작 좌표를 계산하십시오
$startX = ($width - $minDimension) / 2;
$startY = ($height - $minDimension) / 2;

// 작물 영역을 정의하십시오
$cropRect = [
    'x' => $startX,
    'y' => $startY,
    'width' => $minDimension,
    'height' => $minDimension
];

// 작물 사진
$croppedImage = imagecrop($image, $cropRect);

// 출력 자른 그림
header('Content-Type: image/jpeg');
imagejpeg($croppedImage);

// 리소스 정리
imagedestroy($image);
imagedestroy($croppedImage);
?>

7. 결론

위의 단계를 통해 PHP의 ImageCrop 기능을 사용하여 이미지를 사각형으로 쉽게자를 수 있습니다. 이미지를 자르면 자른 이미지가 정사각형인지 확인하기 위해 원본 이미지의 크기에 따라 자른 영역을 계산해야합니다. 이러한 방식으로 PHP는 간단하고 강력한 이미지 처리 기능을 제공하여 이미지 자르기가보다 유연하고 편리하게 만듭니다.

스케일링 또는 회전과 같은 이미지를 추가로 작업 해야하는 경우 GD 라이브러리에서 제공하는 다른 기능을 계속 사용할 수 있습니다. 이 튜토리얼이 PHP로 이미지를 자르는 방법을 이해하는 데 도움이되기를 바랍니다.