imagecrop()는 PHP에 내장된 함수로, 지정한 사각형 영역만큼 이미지를 잘라내는(크롭하는) 데 사용됩니다. 이 함수는 주어진 사각형 영역을 기준으로 이미지를 잘라낸 뒤 결과 이미지를 반환하며, 원본 이미지는 수정되지 않고 그대로 유지됩니다.
문법
resource imagecrop ($image, $rect)
매개변수
imagecrop() 함수는 $image와 $rect, 두 개의 매개변수를 받습니다.
$image − imagecreatetruecolor()와 같은 이미지 생성 함수가 반환한 이미지 리소스입니다. 이 매개변수를 통해 대상 이미지의 크기를 지정합니다.
$rect − 잘라낼 사각형 영역을 정의하는 배열로, x, y, width, height 키를 포함해야 합니다.
반환 값
imagecrop()는 성공 시 잘라낸 이미지 리소스를 반환하고, 실패하면 false를 반환합니다.
예제 1
<?php
// 지정한 이미지 파일로부터 이미지를 생성합니다.
$img = imagecreatefrompng('C:\xampp\htdocs\Images\img34.png');
// 이미지의 가로와 세로 크기 중 작은 값을 구합니다.
$size = min(imagesx($img), imagesy($img));
// 잘라낼 이미지의 크기를 설정합니다.
$img2 = imagecrop($img, ['x' => 0, 'y' => 0, 'width' => 500, 'height' => 320]);
if($img2 !== FALSE) {
imagepng($img2, 'C:\xampp\htdocs\pic_cropped.png');
imagedestroy($img2);
}
imagedestroy($img);
?>실행 결과
imagecrop() 함수 적용 전의 입력 이미지

imagecrop() 함수 적용 후의 출력 이미지

예제 2
<?php
// 로컬 드라이브 폴더에서 이미지를 불러옵니다.
$filename = 'C:\xampp\htdocs\Images\img34.png';
$img = imagecreatefrompng($filename);
$ini_x_size = getimagesize($filename)[0];
$ini_y_size = getimagesize($filename)[1];
// 가로 길이와 세로 길이 중 작은 값을 기준으로 크롭합니다.
$crop_measure = min($ini_x_size, $ini_y_size);
// Content-Type 헤더 설정 (필요 시 주석 해제)
//header('Content-Type: image/png');
$crop_array = array('x' => 0, 'y' => 0, 'width' => $crop_measure, 'height' => $crop_measure);
$thumb_img = imagecrop($img, $crop_array);
imagejpeg($thumb_img, 'thumb.png', 100);
?>실행 결과
